annotate loader/wine/avifmt.h @ 34346:3d0c795524b0

Fix bug with wrong focus in file selector. The focus can only be set to fsFNameList after it's realized and mapped. This also removes the irritating selection of the fsPathCombo.
author ib
date Sun, 11 Dec 2011 16:02:02 +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 */