IMFSourceReader::SetCurrentMediaType 方法(mfreadwrite.h)

设置流的媒体类型。

此媒体类型定义 源读取器 作为输出生成的格式。 它可能与媒体源提供的本机格式不同。 有关详细信息,请参阅“注解”。

Syntax

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

参数

[in] dwStreamIndex

要配置的流。 该值可以是以下任一值。

价值 Meaning
0–0xFFFFFFFB
流的从零开始的索引。
MF_SOURCE_READER_FIRST_VIDEO_STREAM
0xFFFFFFFC
第一个视频流。
MF_SOURCE_READER_FIRST_AUDIO_STREAM
0xFFFFFFFD
第一个音频流。

[in, out] pdwReserved

预留。 设置为 NULL

[in] pMediaType

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

返回值

该方法返回 HRESULT。 可能的值包括但不限于下表中的值。

返回代码 Description
S_OK
方法成功。
MF_E_INVALIDMEDIATYPE
至少为本机流类型找到了一个解码器,但 pMediaType 指定的类型被拒绝。
MF_E_INVALIDREQUEST
一个或多个示例请求仍在挂起。
MF_E_INVALIDSTREAMNUMBER
dwStreamIndex 参数无效。
MF_E_TOPO_CODEC_NOT_FOUND
找不到本机流类型的解码器。

注解

对于每个流,可以将媒体类型设置为以下任一类型:

  • 媒体源提供的本机类型之一。 若要枚举本机类型,请调用 IMFSourceReader::GetNativeMediaType
  • 如果本机媒体类型已压缩,则可以指定相应的未压缩格式。 源读取器将搜索可从本机格式解码为指定未压缩格式的解码器。
使用 Windows 8 向源阅读器添加了音频重新采样支持。 在 Windows 8 之前的 Windows 版本中,源阅读器不支持音频重新采样。 如果需要在早于 Windows 8 的 Windows 版本中重新采样音频,可以使用 Audio Resampler DSP

如果在创建源阅读器时将 MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING 属性设置为 TRUE ,则源阅读器会将 YUV 视频转换为 RGB-32。 此转换未针对实时视频播放进行优化。

如果安装了 Windows Vista 平台更新补充,则 Windows Vista 上提供了此接口。

要求

Requirement 价值
最低支持的客户端 适用于 Windows Vista 的 Windows 7、Windows Vista 和平台更新补充 [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows操作系统
Header mfreadwrite.h

另请参阅

IMFSourceReader

源读取器