Share via


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 と共に使って、このストリームが使うタイム スケールを指定する。dwRatedwScale で割ることにより、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 をインクルードすること。

参照