次の方法で共有


MPEG2_TRANSPORT_STRIDE構造体

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

構造体は MPEG2_TRANSPORT_STRIDE 、MPEG-2 トランスポート ストリーム (TS) パケットの形式を記述します。 この構造体を使用すると、188 バイトのトランスポート パケットが連続していないトランスポート ストリームを使用できます。 このドキュメントでは、このようなパケットを ストライド パケットと呼びます。

ストライド パケットは、次のメディアの種類で識別されます。

Label
メジャーの種類 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

パケットの先頭から埋め込みトランスポート パケットの最初のバイトまでのオフセットをバイト単位で指定します。 値の範囲は、0 (dwStride - dwPacketLength)から 、 の範囲である必要があります。

dwPacketLength

埋め込みトランスポート パケットの長さをバイト単位で指定します。 標準の MPEG-2 トランスポート パケットの場合、値は 188 バイトである必要があります。

dwStride

ストライド パケット全体の長さをバイト単位で指定します。 値は、少なくとも (dwOffset + dwPacketLength)である必要があります。

解説

次の図は、構造体メンバー間の関係を示しています。

mpeg-2 ストライド パケット

多重化ストライド パケットを含む入力バッファーには、いくつかの制限があります。

  • ストライド パケットは、バッファー内で連続してパックする必要があります。
  • 最初のストライド パケットの前にバイトが存在しないか、最後のストライド パケットの後に続く可能性があります。
  • ストライド パケットの整数はバッファーに収まる必要があります。つまり、バッファー長 % dwStride は 0 になります。

バッファーあたりのストライド パケットの数に制限はありません。

メディアの種類にフォーマット ブロック (pbFormatNULL) が含まれていない場合は、次の既定値が使用されます。

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

要件

要件
ヘッダー
Bdatypes.h

関連項目

DirectShow 構造体

MPEG-2 メディアの種類