MPEG-4 Part 2 Video Decoder

The MPEG4 Part 2 Video decoder decodes video streams that were encoded according to the MPEG4 Part 2 standard.

You can create an instance of the MPEG4 Part 2 Video decoder by calling CoCreateInstance. To create an instance of the decoder that behaves as a DirectX Media Object (DMO), use the class identifier CLSID_CMpeg4sDecMediaObject. To create an instance of the decoder that behaves as a Media Foundation Transform (MFT), use the class identifier CLSID_CMpeg4sDecMFT.

Input Types

The MPEG4 Part 2 Video decoder supports the following input media types.

  • MEDIASUBTYPE_M4S2
  • MEDIASUBTYPE_m4s2
  • MEDIASUBTYPE_MP4V
  • MEDIASUBTYPE_mp4v
  • MEDIASUBTYPE_MP4S (deprecated)
  • MEDIASUBTYPE_mp4s (deprecated)

Output Types

The MPEG4 Part 2 Video decoder supports the following output media subtypes when it is acting as a DMO.

  • MEDIASUBTYPE_YV12
  • MEDIASUBTYPE_NV12
  • MEDIASUBTYPE_YUY2
  • MEDIASUBTYPE_UYVY
  • MEDIASUBTYPE_YVYU
  • MEDIASUBTYPE_NV11
  • MEDIASUBTYPE_RGB32
  • MEDIASUBTYPE_RGB24
  • MEDIASUBTYPE_ RGB565
  • MEDIASUBTYPE_RGB555
  • MEDIASUBTYPE_RGB8

The MPEG4 Part 2 Video decoder supports the following output media subtypes when it is acting as an MFT.

  • MEDIASUBTYPE_NV12
  • MEDIASUBTYPE_YV12

Formats

The MPEG4 Part 2 Video decoder accepts the following formats.

Interfaces for the DMO

If you create an instance of the MPEG4 Part 2 Video decoder as a DMO, the decoder exposes the following interfaces.

You can obtain an IMediaObject interface by calling CoCreateInstance, and you can obtain an ICodecAPI interface by calling QueryInterface.

Interfaces for the MFT

If you create an instance of the MPEG2 Part 2 Video decoder as an MFT, the decoder exposes the following interfaces.

You can obtain a pointer to the IMFTransform interface by calling CoCreateInstance, and you can obtain a pointer to the IMFAttributes interface by calling IMFTransform::GetAttributes. You can obtain a pointer to the IMFQualityAdvise or IMFQualityAdvise2 interface by calling QueryInterface on the MFT. You can obtain a pointer to the IMFRateControl or IMFRateSupport interface by calling MFGetService and passing the service identifier MF_RATE_CONTROL_SERVICE.

Profiles and Levels

The MPEG4 specification defines several profiles, each of which specifies the tools that an encoder can use to generate an encoded stream. The MPEG4 Part2 Video Decoder supports two of those profiles: Simple Visual Profile and Advanced Simple Profile. In other words, the MPEG4 Part 2 Video decoder can decode streams that were encoded according to either the Simple Visual Profile or the Advanced Simple Profile.

The Simple Visual Profile supports basic transmission of low bit-rate video in progressive mode. It supports only Intra and Prediction pictures. It also supports the short header mode, which is backward compatible with the H.263 baseline profile. Starting with Windows 10, the MPEG-4 Part 2 Video Decoder also supports H.263v2 (H.263+) which supports custom picture sizes.

The Advanced Simple Profile supports all the tools of the Simple Visual Profile and, in addition, supports interlaced video, B-frames, quarter-pel motion compensation, additional quantization tables, and global motion compensation.

The MPEG4 specification also defines several levels, each of which specifies constraints on the output stream generated by an encoder.

The following table shows the profiles and levels, along with typical resolutions, supported by the MPEG4 Part 2 Video decoder.

Profile Level Typical Resolution
Simple Visual 0 176 x 144
Simple Visual 1 176 x 144
Simple Visual 2 352 x 288
Simple Visual 3 352 x 288
SimpleVisual 4a 640 x 480
Simple Visual 5 720 x 576
Advanced Simple 0 176 x 144
Advanced Simple 1 176 x 144
Advanced Simple 2 352 x 288
Advanced Simple 3 352 x 288
Advanced Simple 3b 352 x 288
Advanced Simple 4 352 x 756
Advanced Simple 5 720 x 576

 

For more information about profiles and levels, see the MPEG4 Part 2 specification (ISO/IEC 14496-2): Information technology -- Coding of audio-visual objects -- Part 2: Visual.

Decoder Properties

To set properties on the MPEG4 Part 2 Video decoder, use the ICodecAPI interface or the IMFAttributes interface.

The MPEG4 Part 2 Video decoder supports the following properties.

Property Description Default Value
CODECAPI_AVDecVideoSWPowerLevel Specifies the power level.
Windows 7.
Write-only.
100
CODECAPI_AVDecVideoThumbnailGenerationMode Specifies the thumbnail generation mode.
Windows 7.
Write-only.
VARIANT_FALSE

 

Remarks

The globally unique identifiers (GUIDs) for RGB media subtypes differ depending on whether a decoder is acting as a DMO or an MFT. The GUIDs for non-RGB media subtypes are the same, regardless of whether a decoder is acting as a DMO or an MFT. For information about the GUIDs that represent media subtypes, see Media Types.

Requirements

Requirement Value
Minimum supported client
Windows 7 [desktop apps only]
Minimum supported server
Windows Server 2008 R2 [desktop apps only]
Header
Wmcodecdsp.h
DLL
MP4SDecd.dll

See also

Codec Objects