AM_SAMPLE_PROPERTY_FLAGS 列挙
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 メソッドに相当する。
参照