Microsoft DirectX 8.0 |
AM_SAMPLE2_PROPERTIES 構造体の dwSampleFlags および dwStreamId メンバの値を指定する。これらの値はメディア サンプルのプロパティを記述する。
構文
enum tagAM_SAMPLE_PROPERTY_FLAGS { AM_SAMPLE_SPLICEPOINT = 0x01, AM_SAMPLE_PREROLL = 0x02, AM_SAMPLE_DATADISCONTINUITY = 0x04, AM_SAMPLE_TYPECHANGED = 0x08, AM_SAMPLE_TIMEVALID = 0x10, AM_SAMPLE_TIMEDISCONTINUITY = 0x40, AM_SAMPLE_FLUSH_ON_PAUSE = 0x80, AM_SAMPLE_STOPVALID = 0x100, AM_SAMPLE_ENDOFSTREAM = 0x200, AM_STREAM_MEDIA = 0, AM_STREAM_CONTROL = 1 };
要素
- AM_SAMPLE_SPLICEPOINT
- サンプルはスプライス ポイントである (前のデータを参照せずにデコードできる)。
- AM_SAMPLE_PREROLL
- サンプルはプリロール サンプルである。
- AM_SAMPLE_DATADISCONTINUITY
- このサンプルの初期データはスプライス ポイントである。前のサンプルのデータは、その後にこのサンプルのデータが続くことを想定していない。詳細については、「注意」を参照すること。
- AM_SAMPLE_TYPECHANGED
- サンプル タイプが変更された。
- AM_SAMPLE_TIMEVALID
- タイムが有効である。
- AM_SAMPLE_TIMEDISCONTINUITY
- データのタイム ギャップがこのサンプルの後から始まる。AM_SAMPLE2_PROPERTIES 構造体の pbBuffer メンバは NULL であってもかまわない。
- AM_SAMPLE_FLUSH_ON_PAUSE
- ライブ データのみ。ポーズ状態での破棄を示す。
- AM_SAMPLE_STOPVALID
- 終了タイムが有効である。
- AM_SAMPLE_ENDOFSTREAM
- このサンプルの後でストリームの終わりになった。これは、カーネル ストリーミング用に予約されており、現時点で Microsoft® DirectShow® はこれを使用しない。
- AM_STREAM_MEDIA
- 通常データ ストリーム 識別子。
- AM_STREAM_CONTROL
- 制御ストリーム 識別子。0x7FFFFFFF を超える値は、アプリケーション定義のストリームを示す。
注意
AM_SAMPLE_DATADISCONTINUITY フラグは、現在のメディア サンプル内のデータが前のサンプルのデータと連続しているとは見なされないことを示す。AM_SAMPLE_DATADISCONTINUITY フラグがセットされたサンプルを受け取ったフィルタは、バッファ内の未処理データを破棄してはならない。バッファに格納されているデータの処理を終了させる前に、入力データを待機しているフィルタは、バッファに格納されているデータを即座に処理しなければならない。ただし、バッファに格納されたデータが不完全な場合は破棄される場合がある。
たとえば、ビデオ デコンプレッサ フィルタは、2 つの完全な圧縮ビデオ フレームと 1 つの不完全な圧縮ビデオ フレームをバッファに持つ場合に、AM_SAMPLE_DATADISCONTINUITY フラグがセットされたメディア サンプルを受け取る。このような場合、フィルタは、現在のメディア サンプルのデータの処理を開始する前に、2 つの完全なフレームを圧縮解除し、不完全な 3 番目のフレームを破棄する。
AM_SAMPLE_DATADISCONTINUITY フラグは、フラッシュまたは停止に続いて受け取った最初のサンプルにセットされる。さらに、ソース内でコンテンツが切り替えられたとき、チャンネル (およびフォーマット) の変更が発生したとき、またはストリームの中断が原因でデータが失われたときは、AM_SAMPLE_DATADISCONTINUITY フラグを使用する必要がある。
AM_SAMPLE_DATADISCONTINUITY フラグは、S_OK を返す IMediaSample::IsDiscontinuity メソッドに相当する。