Der MainAVIHeaderChunk

Next: Der AVIStreamHeader Chunk
Up: Datenstrukturen für AVI-interne
Previous: Datenstrukturen für AVI-interne
Wie oben erwähnt, enthält eine AVI-Datei einen Chunk mit dem FOURCC 'avih',
dieser wird durch eine Struktur repräsentiert, in der die allgemeinen
Informationen über die Datei enthalten sind. Dazu gehören sowohl Daten
über die Anzahl der verwendeten Streams, als auch die Breite und Höhe
der AVI Sequenz.
typedef struct {
DWORD dwMicroSecPerFrame;
DWORD dwMaxBytesPerSec;
DWORD dwReserved1;
DWORD dwFlags;
DWORD dwTotalFrames;
DWORD dwInitialFrames;
DWORD dwStreams;
DWORD dwSuggestedBufferSize;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwScale;
DWORD dwRate;
DWORD dwStart;
DWORD dwLength;
}MainAVIHeader;
- dwMicroSecPerFrame gibt die Warteperiode zwischen den Videobildern an,
dieser Wert bestimmt das Gesamttiming der Bildwiedergabe.
- Das Feld dwMaxBytesPerSec gibt die maximale Datenrate des Files an.
Das bedeutet hier steht die Anzahl der Byte, die in der Sekunde
transportiert werden müssen, um die AVI Sequenz reibungslos abzuspielen.
- dwReserved1 ist reserviert.
- dwFlags enthält verschiedene Flags, die für das File notwendig sind.
Das sind im Detail:
- AVIF_HASINDEX
- Gibt an, ob ein 'idx1'-Chunk vorhanden ist.
- AVIF_MUSTUSEINDEX
- Gibt an, ob der 'idx1'-Chunk zwingend befolgt
werden muß.
- AVIF_ISINTERLEAVED
- Hier steht, ob das AVI-file Interleaved ist.
- AVIF_COPYRIGHTED
- Gibt an, ob Copyrightdaten enthalten sind. Eine
Applikation für AVI-Files kann die Datei bei gesetztem
Flag nicht mehr kopieren.
- AVIF_WASCAPTURFILE
- Gibt an, ob das AVI File eine spezielle Datei
für Realtimevideos ist. Das kann heißen,
daß die Datei nur als Puffer
dient, damit z.B. während einer Videoaufnahme
in eine unfragmentierte Datei geschrieben werden
kann. Eine Applikation warnt den Anwender vor
dem Löschen dieser Datei.
- dwTotalFrames gibt die absolute Anzahl an Frames innerhalb der Datei an.
- dwInitialFrames wird für Interleaved Files benutzt.
- dwStreams hier steht die Anzahl an Streams, die in dem File enthalten
sind z.B. A/V Datei hat zwei.
- dwSuggestedBufferSize gibt die vorgeschlagene Puffergröße zum
Lesen der Datei an. Im allgemeinen sollte der Puffer so groß
gewählt werden, daß der größte Chunk im File hineinpaßt.
Wird er zu klein gewählt, muß während des Playback Speicherplatz
reallokiert werden. Das senkt die Performanz der Wiedergabe. Für
Interleaved Files sollte im Puffer sogar für den ganzen Rekord Platz
sein.
- dwWidth und dwHeight enthalten die Breite und Höhe des AVI-Files in
Pixeln.
- dwScale und dwRate. Diese beiden Felder dienen dazu, den allgemeinen
Zeitmaßstab zu spezifizieren, den das File benutzt. Jeder Stream
kann seinen eigenen Zeitmaßstab haben. Die Samples pro Sekunde etwa,
sind bestimmt durch den Quotienten von dwRate und dwScale.
- dwStart und dwLength. Diese beiden Felder bestimmen die Startzeit und
Länge der Datei, sie werden durch dwScale und dw Rate bestimmt.
Üblicherweise enthält dwStart den Wert Null.

Next: Der AVIStreamHeader Chunk
Up: Datenstrukturen für AVI-interne
Previous: Datenstrukturen für AVI-interne
Alexander Weiß
Tue May 2 13:54:32 MET DST 1995