IMFSourceReader::SetCurrentMediaType method (mfreadwrite.h)

Sets the media type for a stream.

This media type defines that format that the Source Reader produces as output. It can differ from the native format provided by the media source. See Remarks for more information.


HRESULT SetCurrentMediaType(
  [in]      DWORD        dwStreamIndex,
  [in, out] DWORD        *pdwReserved,
  [in]      IMFMediaType *pMediaType


[in] dwStreamIndex

The stream to configure. The value can be any of the following.

Value Meaning
The zero-based index of a stream.
The first video stream.
The first audio stream.

[in, out] pdwReserved

Reserved. Set to NULL.

[in] pMediaType

A pointer to the IMFMediaType interface of the media type.

Return value

The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.

Return code Description
The method succeeded.
At least one decoder was found for the native stream type, but the type specified by pMediaType was rejected.
One or more sample requests are still pending.
The dwStreamIndex parameter is invalid.
Could not find a decoder for the native stream type.


For each stream, you can set the media type to any of the following:

  • One of the native types offered by the media source. To enumerate the native types, call IMFSourceReader::GetNativeMediaType.
  • If the native media type is compressed, you can specify a corresponding uncompressed format. The Source Reader will search for a decoder that can decode from the native format to the specified uncompressed format.
Audio resampling support was added to the source reader with Windows 8. In versions of Windows prior to Windows 8, the source reader does not support audio resampling. If you need to resample the audio in versions of Windows earlier than Windows 8, you can use the Audio Resampler DSP.

If you set the MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING attribute to TRUE when you create the Source Reader, the Source Reader will convert YUV video to RGB-32. This conversion is not optimized for real-time video playback.

This interface is available on Windows Vista if Platform Update Supplement for Windows Vista is installed.


Requirement Value
Minimum supported client Windows 7, Windows Vista and Platform Update Supplement for Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 R2 [desktop apps | UWP apps]
Target Platform Windows
Header mfreadwrite.h

See also


Source Reader