IMFSourceReaderEx::SetNativeMediaType 方法(mfreadwrite.h)

为媒体源上的流设置本机媒体类型。

Syntax

HRESULT SetNativeMediaType(
  [in]  DWORD        dwStreamIndex,
  [in]  IMFMediaType *pMediaType,
  [out] DWORD        *pdwStreamFlags
);

参数

[in] dwStreamIndex

[in] pMediaType

指向媒体类型的 IMFMediaType 接口的指针。

[out] pdwStreamFlags

接收以下标志中的零个或多个按位 OR

价值 Meaning
MF_SOURCE_READERF_ALLEFFECTSREMOVED
从流中删除了所有效果。
MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED
当前输出类型已更改。

返回值

此方法可以返回其中一个值。

返回代码 Description
S_OK
成功。
MF_E_INVALIDREQUEST
请求无效。
MF_E_INVALIDSTREAMNUMBER
dwStreamIndex 参数无效。

注解

此方法设置媒体源生成的输出类型。 与 IMFSourceReader::SetCurrentMediaType 方法不同,此方法不会插入任何解码器、视频处理器或其他转换。 媒体源必须本机支持指定的媒体类型。 若要从媒体源获取受支持的类型列表,请调用 IMFSourceReader::GetNativeMediaType

在异步模式下,如果示例请求挂起,此方法将失败。 在这种情况下,请在调用该方法之前等待调用 OnReadSample 回调。 有关在异步模式下使用源读取器的详细信息,请参阅 IMFSourceReader::ReadSample

此方法可以触发流输出格式的更改。 如果是 ,则MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED 标志在 pdwStreamFlags 参数中返回。 该方法还可能导致源读取器删除 IMFSourceReaderEx::AddTransformForStream 方法添加的任何效果。 如果发生这种情况,则会在 pdwStreamFlags 中返回MF_SOURCE_READERF_ALLEFFECTSREMOVED标志。

此方法适用于音频和视频捕获设备,因为设备可能支持多种输出格式。 此方法使应用程序能够在添加解码器和其他转换之前选择设备格式。

要求

Requirement 价值
最低支持的客户端 Windows 8 [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows操作系统
Header mfreadwrite.h

另请参阅

IMFSourceReaderEx