共用方式為


MPEG2_TRANSPORT_STRIDE 結構

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 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) 必須是 。

備註

下圖說明結構成員之間的關聯性。

mpeg-2 stride 封包

包含多工步幅封包的輸入緩衝區有一些限制:

  • 跨步封包必須連續封裝在緩衝區內。
  • 第一個進位封包之前沒有位元組,或遵循最後一個進位封包。
  • 跨步封包的整數數目必須符合緩衝區中;也就是說,緩衝區長度 % dwStride 等於零。

每個緩衝區的步進封包數目沒有限制。

如果媒體類型不包含格式區塊 (pbFormatNull) ,則會使用下列預設值:

  • dwOffset: 0
  • dwPacketLength: 188
  • dwStride: 188

規格需求

需求
標頭
Bdatypes.h

另請參閱

DirectShow 結構

MPEG-2 媒體類型