MPEG-4 playback issues with streams containing sprite encoding


Consider the following scenario:

When using hardware accelerated video decoding (UVD) and playing an AVI video file that contains a MPEG-4 ASP video stream on Windows Media Center and Media Player, if the bit stream contains Sprite encoding, the video might appear corrupted or blocky.  


When using Microsoft's Media Foundation Transform (MFT) the file reader negotiates with the decoder to determine if it supports the format for the input video stream.  This is done by passing in the header information to the decoder and it will either accept or reject the given content.  The problem seen is with the AVI Bitstream reader.  This component only sends limited information such as width, height and format type (MPEG-4, Xvid etc) instead of the full header.  The rest of the header contains specific information about the video stream such as the presence of sprites, global motion compensation, etc.

Media applications such as Windows Media Center or Windows Media Player use the Media Foundation framework to allow third party hardware MFTs to coexist with software MFTs.  If the hardware MFT does not support a certain format or feature it can communicate with the framework to allow the playback to occur with the software MFT.  However the fallback can only occur during format negotiation and not once the connection is established.  In this case a hardware MFT does not have enough information to make a determination if it supports the given format hence the playback continues with the hardware MFT and the video appears blocky or corrupted.


If your MPEG-4 ASP content is contained in an AVI wrapper and it contains sprites, you should transcode the file so that it's in a MPEG-4 container such as .mp4.  Another option would be to transcode the content so that it does not contain sprites.

Raksta ID: 2540167. Pēdējo reizi pārskatīts: 2011. gada 21. apr.. Pārskatījums: 1