IMPEG2StreamIdMap::MapStreamId 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法MapStreamId将 MPEG-2 程序流中基本流的Stream ID 映射到媒体内容类型和子流筛选信息。

语法

HRESULT MapStreamId(
  [in] ULONG ulStreamId,
  [in] DWORD MediaSampleContent,
  [in] ULONG ulSubstreamFilterValue,
  [in] int   iDataOffset
);

参数

[in] ulStreamId

PES 流的流 ID。

[in] MediaSampleContent

指定流的内容。 目前支持的唯一值MPEG2_PROGRAM_ELEMENTARY_STREAM (在 axextend.idl) 中定义为 0x00000001。

[in] ulSubstreamFilterValue

指定要将此基本流中的哪个子流传递给下游解码器。 只有低位字节才能包含有效的筛选器值。 如果 iDataOffset = 0,则忽略此参数。

[in] iDataOffset

子流开始的有效负载中的字节偏移量。

返回值

如果成功,则返回S_OK。 如果方法失败,则返回错误代码。 如果尝试MEDIA_PROGRAM_STREAM_MAP、MEDIA_PROGRAM_DIRECTORY_PES_PACKET或MEDIA_PROGRAM_PACK_HEADER的Stream ID,此方法将返回E_NOTIMPL。

注解

此方法映射的Stream ID 是 PES 标头中的流 ID。 子流筛选最常用于在单个音频流上提供多个通道。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IMPEG2StreamIdMap 接口