MPEG2_TRANSPORT_STRIDE
MPEG2_TRANSPORT_STRIDE 構造体は、MPEG-2 トランスポート ストリーム (TS) パケットのフォーマットを記述する。この構造体は 188 バイトのトランスポート パケットが連続していないトランスポート ストリームに対応している。このドキュメントでは、そのようなパケットは "ストライド パケット" と呼ぶ。
ストライド パケットは、次のメディア タイプによって識別される。
メジャー タイプ | MEDIATYPE_Stream |
サブタイプ | MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE |
フォーマット タイプ | FORMAT_None |
フォーマット ブロック (pbFormat) はオプションである。フォーマット ブロックが含まれている場合、そのブロックは MPEG2_TRANSPORT_STRIDE 構造体から開始する必要がある。この構造体は、ストライド パケット内のトランスポート パケットのレイアウトを定義する。フォーマット ブロックが NULL の場合、パケットは一連のデフォルト値を使うと見なされる。詳細については、「注意」を参照すること。
構文
struct MPEG2_TRANSPORT_STRIDE {
DWORD dwOffset
DWORD dwPacketLength
DWORD dwStride
};
メンバ
dwOffset
パケットの先頭から埋め込みトランスポート パケットの先頭バイトまでのオフセットを指定する (バイト単位)。値は必ず 0 ~ (dwStride - dwPacketLength) の範囲 (両端を含む) で指定すること。
dwPacketLength
埋め込みトランスポート パケットの長さを指定する (バイト単位)。標準 MPEG-2 トランスポート パケットの場合、値は必ず 188 バイトにすること。
dwStride
ストライド パケット全体の長さを指定する (バイト単位)。値は必ず (dwOffset + dwPacketLength) 以上を指定すること。
注意
次の図は、構造体のメンバどうしの関係を示したものである。
マルチプレクスされたストライド パケットを含む入力バッファには、以下のような制限がある。
- ストライド パケットはバッファ内では連続してパックされていなければならない。
- 先頭のストライド パケットの前に先行バイトを入れたり、最後のストライド パケットの後に後続バイトを入れてはならない。
- ストライド パケットの総数はバッファに合わせる必要がある。すなわち、バッファ長 % dwStride が 0 にならなければならない。
バッファあたりのストライド パケット数についての制限はない。
メディア タイプにフォーマット ブロックが含まれない場合 (pbFormat が NULL)、次のデフォルト値が使われる。
- dwOffset: 0
- dwPacketLength: 188
- dwStride: 188
参照