AM_SAMPLE2_PROPERTIES 構造体
AM_SAMPLE2_PROPERTIES 構造体は、メディア サンプルのプロパティを記述する。IMediaSample2 インターフェイスはこの構造体を使う。
構文
typedef struct tagAM_SAMPLE2_PROPERTIES {
DWORD cbData;
DWORD dwTypeSpecificFlags;
DWORD dwSampleFlags;
LONG lActual;
REFERENCE_TIME tStart;
REFERENCE_TIME tStop;
DWORD dwStreamId;
AM_MEDIA_TYPE *pMediaType;
BYTE *pbBuffer;
LONG cbBuffer;
} AM_SAMPLE2_PROPERTIES;
メンバ
cbData
プロパティ データの長さ (バイト単位)。この構造体メンバは拡張用である。
dwTypeSpecificFlags
タイプ固有のフラグ。フラグはメディア タイプごとに定義される。デフォルト値は AM_VIDEO_FLAG_INTERLEAVED_FRAME (ゼロ)。ビデオ ストリームには次のフラグが使われている。
フラグ | 値 | 説明 |
AM_VIDEO_FLAG_FIELD_MASK | 0x0003 | このマスクを使ってサンプルがフィールドかフレームかを調べる。 |
AM_VIDEO_FLAG_INTERLEAVED_FRAME | 0x0000 | サンプルはフレームである (この値をテストする場合は必ず AM_VIDEO_FLAG_FIELD_MASK ビットマスクを使うこと)。 |
AM_VIDEO_FLAG_FIELD1 | 0x0001 | サンプルはフィールド 1 である (この値をテストする場合は必ず AM_VIDEO_FLAG_FIELD_MASK ビットマスクを使うこと)。 |
AM_VIDEO_FLAG_FIELD2 | 0x0002 | サンプルはフィールド 2 である (この値をテストする場合は必ず AM_VIDEO_FLAG_FIELD_MASK ビットマスクを使うこと)。 |
AM_VIDEO_FLAG_FIELD1FIRST | 0x0004 | このフラグが設定されている場合は、フィールド 1 を最初に表示する。設定されていない場合は、フィールド 2 を最初に表示する (1 つのサンプルにつき 2 つのフィールドがある場合に限り適用される)。 |
AM_VIDEO_FLAG_WEAVE | 0x0008 | このフラグが設定されている場合は、ウィーヴ モードを使う (サンプルを非インターレース化しない)。このフラグが設定されていない場合は、ボブ モードを使う。このフラグは、1 つのサンプルにつき 2 つのフィールドがある場合に限り適用される。 |
AM_VIDEO_FLAG_REPEAT_FIELD | 0x0040 | このフラグが設定されている場合は、2 つ目のフィールドを表示した後で再び最初のフィールドを表示する (1 つのサンプルにつき 2 つのフィールドがある場合に限り適用される)。 |
他のフラグも定義されているが、現在は使われていない。dvdmedia.h を参照すること。
dwSampleFlags
AM_SAMPLE_PROPERTY_FLAGS 列挙型のフラグのビットごとの組み合わせ。未定義のビットは予約されており、ゼロでなければならない。
lActual
バッファ内の有効なデータの長さ。
tStart
有効な場合は開始タイム。dwSampleFlags メンバはこのメンバが有効かどうかを示す。
tStop
有効な場合は終了タイム。dwSampleFlags メンバはこのメンバが有効かどうかを示す。
dwStreamId
ストリーム識別子。この値が AM_STREAM_MEDIA の場合、ストリームにはメディア データが含まれる。この値が AM_STREAM_CONTROL の場合、ストリ-ムにはコントロール情報が含まれる。アプリケーションは 0x80000000 以上の値を定義して、アプリケーション自身の用途に使える。「AM_SAMPLE_PROPERTY_FLAGS 列挙」を参照すること。
pMediaType
フォーマットが変更された場合に、メディア タイプを指定する AM_MEDIA_TYPE 構造体へのポインタ。このフォーマットが変更されていないときは、このメンバには NULL を指定する。
pbBuffer
サンプル バッファへのポインタ。
cbBuffer
サンプル バッファのサイズ (バイト単位)。
参照