MPEG2_TRANSPORT_STRIDE 結構
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
結構 MPEG2_TRANSPORT_STRIDE
描述 MPEG-2 傳輸資料流程的格式, (TS) 封包。 此結構允許傳輸資料流程,其中的 188 位元組傳輸封包不是連續的。 基於本檔的目的,這類封包稱為 「步進封包」。
Stride 封包是由下列媒體類型所識別:
標籤 | 值 |
---|---|
主要類型 | MEDIATYPE_Stream |
Subtype | MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE |
格式類型 | FORMAT_None |
pbFormat) 格式區塊 (是選擇性的。 如果包含格式區塊,它必須以 MPEG2_TRANSPORT_STRIDE 結構開頭。 此結構會定義跨步封包內的傳輸封包配置。 如果格式區塊為 Null,則會假設封包使用一組預設值;如需詳細資訊,請參閱一節。
語法
typedef struct _MPEG2_TRANSPORT_STRIDE {
DWORD dwOffset;
DWORD dwPacketLength;
DWORD dwStride;
} MPEG2_TRANSPORT_STRIDE, *PMPEG2_TRANSPORT_STRIDE;
成員
-
dwOffset
-
指定從封包開頭到內嵌傳輸封包的第一個位元組的位移,以位元組為單位。 值的範圍必須介於零到
(dwStride - dwPacketLength)
內含。 -
dwPacketLength
-
指定內嵌傳輸封包的長度,以位元組為單位。 對於標準 MPEG-2 傳輸封包,此值必須是 188 個位元組。
-
dwStride
-
指定整個 stride 封包的長度,以位元組為單位。 此值至少
(dwOffset + dwPacketLength)
必須是 。
備註
下圖說明結構成員之間的關聯性。
包含多工步幅封包的輸入緩衝區有一些限制:
- 跨步封包必須連續封裝在緩衝區內。
- 第一個進位封包之前沒有位元組,或遵循最後一個進位封包。
- 跨步封包的整數數目必須符合緩衝區中;也就是說,緩衝區長度 % dwStride 等於零。
每個緩衝區的步進封包數目沒有限制。
如果媒體類型不包含格式區塊 (pbFormat 為 Null) ,則會使用下列預設值:
- dwOffset: 0
- dwPacketLength: 188
- dwStride: 188
規格需求
需求 | 值 |
---|---|
標頭 |
|
另請參閱