annotate loader/wine/avifmt.h @ 35447:825d6e1cad3e

demux_lavf: support subtitle-only formats.
author reimar
date Fri, 30 Nov 2012 21:31:14 +0000
parents 0f1b5b68af32
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /****************************************************************************
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3 * AVIFMT - AVI file format definitions
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
4 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 ****************************************************************************/
26045
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 24422
diff changeset
6 #ifndef MPLAYER_AVIFMT_H
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 24422
diff changeset
7 #define MPLAYER_AVIFMT_H
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8
26045
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 24422
diff changeset
9 #ifndef MPLAYER_NOAVIFMT_H
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10
24421
058fc97310e3 Fix include path.
diego
parents: 24420
diff changeset
11 #include "windef.h"
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12
26045
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 24422
diff changeset
13 #ifndef MPLAYER_MSACM_H
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 typedef DWORD FOURCC;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 #ifdef _MSC_VER
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 #pragma warning(disable:4200)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 #endif
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
21
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 /* The following is a short description of the AVI file format. Please
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 * see the accompanying documentation for a full explanation.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25 * An AVI file is the following RIFF form:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 *
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
27 * RIFF('AVI'
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28 * LIST('hdrl'
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 * avih(<MainAVIHeader>)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
30 * LIST ('strl'
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31 * strh(<Stream header>)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
32 * strf(<Stream format>)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 * ... additional header data
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
34 * LIST('movi'
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
35 * { LIST('rec'
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36 * SubChunk...
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37 * )
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
38 * | SubChunk } ....
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
39 * )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
40 * [ <AVIIndex> ]
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
41 * )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43 * The main file header specifies how many streams are present. For
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
44 * each one, there must be a stream header chunk and a stream format
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
45 * chunk, enlosed in a 'strl' LIST chunk. The 'strf' chunk contains
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46 * type-specific format information; for a video stream, this should
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47 * be a BITMAPINFO structure, including palette. For an audio stream,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
48 * this should be a WAVEFORMAT (or PCMWAVEFORMAT) structure.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
49 *
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
50 * The actual data is contained in subchunks within the 'movi' LIST
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51 * chunk. The first two characters of each data chunk are the
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
52 * stream number with which that data is associated.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54 * Some defined chunk types:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 * Video Streams:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
56 * ##db: RGB DIB bits
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57 * ##dc: RLE8 compressed DIB bits
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
58 * ##pc: Palette Change
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
59 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
60 * Audio Streams:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 * ##wb: waveform audio bytes
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
63 * The grouping into LIST 'rec' chunks implies only that the contents of
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64 * the chunk should be read into memory at the same time. This
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
65 * grouping is used for files specifically intended to be played from
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66 * CD-ROM.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 *
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
68 * The index chunk at the end of the file should contain one entry for
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69 * each data chunk in the file.
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
70 *
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71 * Limitations for the current software:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
72 * Only one video stream and one audio stream are allowed.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73 * The streams must start at the beginning of the file.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
74 *
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
75 *
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
76 * To register codec types please obtain a copy of the Multimedia
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
77 * Developer Registration Kit from:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
78 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
79 * Microsoft Corporation
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
80 * Multimedia Systems Group
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
81 * Product Marketing
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
82 * One Microsoft Way
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
83 * Redmond, WA 98052-6399
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
84 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
85 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
86
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
87 #ifndef mmioFOURCC
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
88 #define mmioFOURCC( ch0, ch1, ch2, ch3 ) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
89 ( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
90 ( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
91 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
92
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
93 /* Macro to make a TWOCC out of two characters */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
94 #ifndef aviTWOCC
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
95 #define aviTWOCC(ch0, ch1) ((WORD)(BYTE)(ch0) | ((WORD)(BYTE)(ch1) << 8))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
96 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
98 typedef WORD TWOCC;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
99
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
100 /* form types, list types, and chunk types */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
101 #define formtypeAVI mmioFOURCC('A', 'V', 'I', ' ')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102 #define listtypeAVIHEADER mmioFOURCC('h', 'd', 'r', 'l')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
103 #define ckidAVIMAINHDR mmioFOURCC('a', 'v', 'i', 'h')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
104 #define listtypeSTREAMHEADER mmioFOURCC('s', 't', 'r', 'l')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
105 #define ckidSTREAMHEADER mmioFOURCC('s', 't', 'r', 'h')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
106 #define ckidSTREAMFORMAT mmioFOURCC('s', 't', 'r', 'f')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
107 #define ckidSTREAMHANDLERDATA mmioFOURCC('s', 't', 'r', 'd')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
108 #define ckidSTREAMNAME mmioFOURCC('s', 't', 'r', 'n')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
109
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
110 #define listtypeAVIMOVIE mmioFOURCC('m', 'o', 'v', 'i')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
111 #define listtypeAVIRECORD mmioFOURCC('r', 'e', 'c', ' ')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
112
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
113 #define ckidAVINEWINDEX mmioFOURCC('i', 'd', 'x', '1')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
114
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
115 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
116 ** Stream types for the <fccType> field of the stream header.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
117 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
118 #define streamtypeVIDEO mmioFOURCC('v', 'i', 'd', 's')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
119 #define streamtypeAUDIO mmioFOURCC('a', 'u', 'd', 's')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
120 #define streamtypeMIDI mmioFOURCC('m', 'i', 'd', 's')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
121 #define streamtypeTEXT mmioFOURCC('t', 'x', 't', 's')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
122
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
123 /* Basic chunk types */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
124 #define cktypeDIBbits aviTWOCC('d', 'b')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
125 #define cktypeDIBcompressed aviTWOCC('d', 'c')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
126 #define cktypePALchange aviTWOCC('p', 'c')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
127 #define cktypeWAVEbytes aviTWOCC('w', 'b')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
128
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
129 /* Chunk id to use for extra chunks for padding. */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
130 #define ckidAVIPADDING mmioFOURCC('J', 'U', 'N', 'K')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
131
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
132 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
133 ** Useful macros
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
134 **
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
135 ** Warning: These are nasty macro, and MS C 6.0 compiles some of them
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
136 ** incorrectly if optimizations are on. Ack.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
137 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
138
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
139 /* Macro to get stream number out of a FOURCC ckid */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
140 #define FromHex(n) (((n) >= 'A') ? ((n) + 10 - 'A') : ((n) - '0'))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
141 #define StreamFromFOURCC(fcc) ((WORD) ((FromHex(LOBYTE(LOWORD(fcc))) << 4) + \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
142 (FromHex(HIBYTE(LOWORD(fcc))))))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
143
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
144 /* Macro to get TWOCC chunk type out of a FOURCC ckid */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
145 #define TWOCCFromFOURCC(fcc) HIWORD(fcc)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
146
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
147 /* Macro to make a ckid for a chunk out of a TWOCC and a stream number
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
148 ** from 0-255.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
149 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
150 #define ToHex(n) ((BYTE) (((n) > 9) ? ((n) - 10 + 'A') : ((n) + '0')))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
151 #define MAKEAVICKID(tcc, stream) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
152 MAKELONG((ToHex((stream) & 0x0f) << 8) | \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
153 (ToHex(((stream) & 0xf0) >> 4)), tcc)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
154
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
155 /*
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
156 ** Main AVI File Header
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
157 */
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
158
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
159 /* flags for use in <dwFlags> in AVIFileHdr */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
160 #define AVIF_HASINDEX 0x00000010 // Index at end of file?
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
161 #define AVIF_MUSTUSEINDEX 0x00000020
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
162 #define AVIF_ISINTERLEAVED 0x00000100
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
163 #define AVIF_TRUSTCKTYPE 0x00000800 // Use CKType to find key frames?
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
164 #define AVIF_WASCAPTUREFILE 0x00010000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
165 #define AVIF_COPYRIGHTED 0x00020000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
166
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
167 /* The AVI File Header LIST chunk should be padded to this size */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
168 #define AVI_HEADERSIZE 2048 // size of AVI header list
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
169
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
170 typedef struct
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
171 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
172 DWORD dwMicroSecPerFrame; // frame display rate (or 0L)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
173 DWORD dwMaxBytesPerSec; // max. transfer rate
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
174 DWORD dwPaddingGranularity; // pad to multiples of this
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
175 // size; normally 2K.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
176 DWORD dwFlags; // the ever-present flags
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
177 DWORD dwTotalFrames; // # frames in file
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
178 DWORD dwInitialFrames;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
179 DWORD dwStreams;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
180 DWORD dwSuggestedBufferSize;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
181
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
182 DWORD dwWidth;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
183 DWORD dwHeight;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
184
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
185 DWORD dwReserved[4];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
186 } MainAVIHeader;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
187
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
188 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
189 ** Stream header
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
190 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
191
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
192 #define AVISF_DISABLED 0x00000001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
193
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
194 #define AVISF_VIDEO_PALCHANGES 0x00010000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
195
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
196
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
197 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
198 FOURCC fccType;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
199 FOURCC fccHandler;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
200 DWORD dwFlags; /* Contains AVITF_* flags */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
201 WORD wPriority;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
202 WORD wLanguage;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
203 DWORD dwInitialFrames;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 26045
diff changeset
204 DWORD dwScale;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
205 DWORD dwRate; /* dwRate / dwScale == samples/second */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
206 DWORD dwStart;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
207 DWORD dwLength; /* In units above... */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
208 DWORD dwSuggestedBufferSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
209 DWORD dwQuality;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
210 DWORD dwSampleSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
211 RECT rcFrame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
212 } AVIStreamHeader;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
213
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
214 /* Flags for index */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
215 #define AVIIF_LIST 0x00000001L // chunk is a 'LIST'
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
216 #define AVIIF_KEYFRAME 0x00000010L // this frame is a key frame.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
217
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
218 #define AVIIF_NOTIME 0x00000100L // this frame doesn't take any time
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
219 #define AVIIF_COMPUSE 0x0FFF0000L // these bits are for compressor use
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
220
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
221 #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
222 #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
223
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
224 typedef struct
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
225 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
226 DWORD ckid;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
227 DWORD dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
228 DWORD dwChunkOffset; // Position of chunk
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
229 DWORD dwChunkLength; // Length of chunk
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
230 } AVIINDEXENTRY;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
231
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
232 #define AVISTREAMREAD_CONVENIENT (-1L)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
233
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
234 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
235 ** Palette change chunk
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
236 **
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
237 ** Used in video streams.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
238 */
26045
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 24422
diff changeset
239 #endif /* MPLAYER_NOAVIFMT_H */
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 24422
diff changeset
240 #endif /* MPLAYER_AVIFMT_H */