IMFSourceReader::SetCurrentMediaType Method

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.

Syntax

public:
HRESULT SetCurrentMediaType(
         DWORD dwStreamIndex,
         _Reserved_ DWORD *pdwReserved,
         IMFMediaType *pMediaType
)  

Parameters

dwStreamIndex
Type: DWORD 

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

pdwReserved
Type: Reserved DWORD *

Reserved. Set to NULL.

pMediaType
Type: IMFMediaType *

[in] A pointer to the IMFMediaType interface of the media type.

Return value

Type: HRESULT 

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

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

Refer to Media Foundation return codes.

Remarks

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

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.

Requirements

Header: Declared in mfreadwrite.h.