AVISTREAMHEADER 構造体
AVISTREAMHEADER 構造体は、AVI ファイル内の 1 つのストリームに関する情報を格納する。
構文
typedef struct _avistreamheader {
FOURCC fcc;
DWORD cb;
FOURCC fccType;
FOURCC fccHandler;
DWORD dwFlags;
WORD wPriority;
WORD wLanguage;
DWORD dwInitialFrames;
DWORD dwScale;
DWORD dwRate;
DWORD dwStart;
DWORD dwLength;
DWORD dwSuggestedBufferSize;
DWORD dwQuality;
DWORD dwSampleSize;
struct {
short int left;
short int top;
short int right;
short int bottom;
} rcFrame;
} AVISTREAMHEADER;
メンバ
fcc
FOURCC コードを指定する。値は 'strh' でなければならない。
cb
構造体のサイズを指定する。最初の 8 バイト分を差し引いた値を指定する。
fccType
ストリームに含まれるデータのタイプを指定する FOURCC を含む。ビデオおよびオーディオに対して以下の標準 AVI 値が定義されている。
FOURCC | 説明 |
'auds' | オーディオ ストリーム。 |
'mids' | MIDI ストリーム。 |
'txts' | テキスト ストリーム。 |
'vids' | ビデオ ストリーム。 |
fccHandler
特定のデータ ハンドラを示す FOURCC を含む (オプション)。データ ハンドラは、ストリームに対して適切なハンドラである。オーディオ ストリームまたはビデオ ストリームについて、ストリームをデコードするコーデックを指定する。
dwFlags
データ ストリームに対するフラグを含む。これらのフラグの上位ワードのビットは、ストリームに含まれるデータのタイプに固有である。以下の標準フラグが定義されている。
値 | 説明 |
AVISF_DISABLED | このストリームをデフォルトで有効にしないことを示す。 |
AVISF_VIDEO_PALCHANGES | このビデオ ストリームにパレットの変更が含まれることを示す。このフラグは、再生ソフトウェアに対して、パレットをアニメーションする必要があることを警告する。 |
dwPriority
ストリーム タイプの優先順位を指定する。たとえば、複数のオーディオ ストリームを含むファイルでは、優先順位の最も高いストリームがデフォルトのストリームになる。
dwInitialFrames
インターリーブされたファイルで、オーディオ データがビデオ フレームからどのくらいスキューされているかを指定する。通常は、約 0.75 秒である。インターリーブされたファイルを作成する場合、ファイル内で AVI シーケンスの開始フレームより前にあるフレーム数を、このメンバに指定する。このメンバの内容に関する詳細については、『Video for Windows Programmer's Guide』の「Special Information for Interleaved Files」を参照すること。
dwScale
dwRate と共に使って、このストリームが使うタイム スケールを指定する。dwRate を dwScale で割ることにより、1 秒あたりのサンプル数が求められる。ビデオ ストリームの場合、これはフレーム レートである。オーディオ ストリームの場合、このレートは nBlockAlign バイトのオーディオの再生に必要な時間に相当する。これは PCM オーディオの場合はサンプル レートに等しくなる。
dwRate
dwScale を参照すること。
dwStart
このストリームの開始タイムを指定する。単位は、メイン ファイル ヘッダーの dwRate および dwScale メンバによって定義される。Usually, this is zero, but it can specify a delay time for a stream that does not start concurrently with the file.
dwLength
このストリームの長さを指定する。単位は、ストリームのヘッダーの dwRate および dwScale メンバによって定義される。
dwSuggestedBufferSize
このストリームを読み取るために必要なバッファの大きさを指定する。通常は、ストリーム内の最大のチャンクに対応する値である。正しいバッファ サイズを使うことで、再生の効率が高まる。正しいバッファ サイズがわからない場合は、0 を指定する。
dwQuality
ストリーム内のデータの品質を示す値を指定する。品質は、0 ~ 10,000 の範囲の値で示される。圧縮データの場合、これは通常、圧縮ソフトウェアに渡される品質パラメータの値を示す。-1 に設定した場合、ドライバはデフォルトの品質値を使う。
dwSampleSize
データの 1 サンプルのサイズを指定する。サンプルのサイズが変化する場合は、0 に設定する。この値が 0 でない場合、ファイル内で複数のデータ サンプルを 1 つのチャンクにグループ化できる。0 の場合、各データ サンプル (ビデオ フレームなど) はそれぞれ別のチャンクに含まれなければならない。ビデオ ストリームの場合、この値は通常 0 であるが、すべてのビデオ フレームが同じサイズであれば、0 以外の値にもできる。オーディオ ストリームの場合、この値はオーディオを記述する WAVEFORMATEX 構造体の nBlockAlign メンバと同じでなければならない。
rcFrame
AVI メイン ヘッダー構造体の dwWidth および dwHeight メンバによって指定される動画矩形内のテキストまたはビデオ ストリームに対する転送先矩形を指定する。通常、rcFrame メンバは、複数のビデオ ストリームをサポートするために使われる。この矩形は、動画矩形に対応する座標に設定して、動画矩形全体を更新する。このメンバの単位はピクセルである。転送先矩形の左上隅は、動画矩形の左上隅からの相対指定となる。
注意
この構造体のメンバの一部は、AVIMAINHEADER 構造体にも存在している。AVIMAINHEADER 構造体に含まれるデータはファイル全体に適用されるが、AVISTREAMHEADER 構造体に含まれるデータは 1 つのストリームに対して適用される。
要件
Aviriff.h をインクルードすること。
参照