IMPEG2StreamIdMap::MapStreamId 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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 |