annotate libmpdemux/aviheader.h @ 12116:8d476d8a16ae

fixed broken diseqc fetch from channels file
author nicodvb
date Sun, 04 Apr 2004 17:11:37 +0000
parents cf68f8b514b0
children 0db4a3a5b01d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1343
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
1 #ifndef _aviheader_h
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
2 #define _aviheader_h
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
3
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
4 //#include "config.h" /* get correct definition WORDS_BIGENDIAN */
1343
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
5 #include "bswap.h"
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
6
12036
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
7 typedef struct _avisuperindex_entry {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
8 uint64_t qwOffset; // absolute file offset
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
9 uint32_t dwSize; // size of index chunk at this offset
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
10 uint32_t dwDuration; // time span in stream ticks
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
11 } avisuperindex_entry;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
12
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
13 typedef struct _avistdindex_entry {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
14 uint32_t dwOffset; // qwBaseOffset + this is absolute file offset
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
15 uint32_t dwSize; // bit 31 is set if this is NOT a keyframe
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
16 } avistdindex_entry;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
17
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
18 // Standard index
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
19 typedef struct _avistdindex_chunk {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
20 char fcc[4]; // ix##
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
21 uint32_t dwSize; // size of this chunk
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
22 uint16_t wLongsPerEntry; // must be sizeof(aIndex[0])/sizeof(DWORD)
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
23 uint8_t bIndexSubType; // must be 0
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
24 uint8_t bIndexType; // must be AVI_INDEX_OF_CHUNKS
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
25 uint32_t nEntriesInUse; // first unused entry
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
26 char dwChunkId[4]; // '##dc' or '##db' or '##wb' etc..
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
27 uint64_t qwBaseOffset; // all dwOffsets in aIndex array are relative to this
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
28 uint32_t dwReserved3; // must be 0
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
29 avistdindex_entry *aIndex; // the actual frames
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
30 } avistdindex_chunk;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
31
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
32
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
33 // Base Index Form 'indx'
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
34 typedef struct _avisuperindex_chunk {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
35 char fcc[4];
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
36 uint32_t dwSize; // size of this chunk
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
37 uint16_t wLongsPerEntry; // size of each entry in aIndex array (must be 4*4 for us)
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
38 uint8_t bIndexSubType; // future use. must be 0
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
39 uint8_t bIndexType; // one of AVI_INDEX_* codes
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
40 uint32_t nEntriesInUse; // index of first unused member in aIndex array
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
41 char dwChunkId[4]; // fcc of what is indexed
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
42 uint32_t dwReserved[3]; // meaning differs for each index type/subtype.
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
43 // 0 if unused
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
44 avisuperindex_entry *aIndex; // position of ix## chunks
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
45 avistdindex_chunk *stdidx; // the actual std indices
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
46 } avisuperindex_chunk;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
47
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
48 typedef struct {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
49 uint32_t CompressedBMHeight;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
50 uint32_t CompressedBMWidth;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
51 uint32_t ValidBMHeight;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
52 uint32_t ValidBMWidth;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
53 uint32_t ValidBMXOffset;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
54 uint32_t ValidBMYOffset;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
55 uint32_t VideoXOffsetInT;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
56 uint32_t VideoYValidStartLine;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
57 } VIDEO_FIELD_DESC;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
58
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
59 typedef struct {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
60 uint32_t VideoFormatToken;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
61 uint32_t VideoStandard;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
62 uint32_t dwVerticalRefreshRate;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
63 uint32_t dwHTotalInT;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
64 uint32_t dwVTotalInLines;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
65 uint32_t dwFrameAspectRatio;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
66 uint32_t dwFrameWidthInPixels;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
67 uint32_t dwFrameHeightInLines;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
68 uint32_t nbFieldPerFrame;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
69 VIDEO_FIELD_DESC FieldInfo[2];
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
70 } VideoPropHeader;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
71
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
72 enum {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
73 FORMAT_UNKNOWN,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
74 FORMAT_PAL_SQUARE,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
75 FORMAT_PAL_CCIR_601,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
76 FORMAT_NTSC_SQUARE,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
77 FORMAT_NTSC_CCIR_601,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
78 } VIDEO_FORMAT;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
79
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
80 enum {
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
81 STANDARD_UNKNOWN,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
82 STANDARD_PAL,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
83 STANDARD_NTSC,
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
84 STANDARD_SECAM
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
85 } VIDEO_STANDARD;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
86
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
87 #define MAKE_AVI_ASPECT(a, b) (((a)<<16)|(b))
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
88 #define GET_AVI_ASPECT(a) ((float)((a)>>16)/(float)((a)&0xffff))
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
89
1343
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
90 /*
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
91 * Some macros to swap little endian structures read from an AVI file
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
92 * into machine endian format
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
93 */
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
94 #ifdef WORDS_BIGENDIAN
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
95 #define le2me_MainAVIHeader(h) { \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
96 (h)->dwMicroSecPerFrame = le2me_32((h)->dwMicroSecPerFrame); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
97 (h)->dwMaxBytesPerSec = le2me_32((h)->dwMaxBytesPerSec); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
98 (h)->dwPaddingGranularity = le2me_32((h)->dwPaddingGranularity); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
99 (h)->dwFlags = le2me_32((h)->dwFlags); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
100 (h)->dwTotalFrames = le2me_32((h)->dwTotalFrames); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
101 (h)->dwInitialFrames = le2me_32((h)->dwInitialFrames); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
102 (h)->dwStreams = le2me_32((h)->dwStreams); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
103 (h)->dwSuggestedBufferSize = le2me_32((h)->dwSuggestedBufferSize); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
104 (h)->dwWidth = le2me_32((h)->dwWidth); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
105 (h)->dwHeight = le2me_32((h)->dwHeight); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
106 }
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
107
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
108 #define le2me_AVIStreamHeader(h) { \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
109 (h)->fccType = le2me_32((h)->fccType); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
110 (h)->fccHandler = le2me_32((h)->fccHandler); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
111 (h)->dwFlags = le2me_32((h)->dwFlags); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
112 (h)->wPriority = le2me_16((h)->wPriority); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
113 (h)->wLanguage = le2me_16((h)->wLanguage); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
114 (h)->dwInitialFrames = le2me_32((h)->dwInitialFrames); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
115 (h)->dwScale = le2me_32((h)->dwScale); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
116 (h)->dwRate = le2me_32((h)->dwRate); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
117 (h)->dwStart = le2me_32((h)->dwStart); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
118 (h)->dwLength = le2me_32((h)->dwLength); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
119 (h)->dwSuggestedBufferSize = le2me_32((h)->dwSuggestedBufferSize); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
120 (h)->dwQuality = le2me_32((h)->dwQuality); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
121 (h)->dwSampleSize = le2me_32((h)->dwSampleSize); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
122 le2me_RECT(&(h)->rcFrame); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
123 }
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
124 #define le2me_RECT(h) { \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
125 (h)->left = le2me_16((h)->left); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
126 (h)->top = le2me_16((h)->top); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
127 (h)->right = le2me_16((h)->right); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
128 (h)->bottom = le2me_16((h)->bottom); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
129 }
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
130 #define le2me_BITMAPINFOHEADER(h) { \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
131 (h)->biSize = le2me_32((h)->biSize); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
132 (h)->biWidth = le2me_32((h)->biWidth); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
133 (h)->biHeight = le2me_32((h)->biHeight); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
134 (h)->biPlanes = le2me_16((h)->biPlanes); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
135 (h)->biBitCount = le2me_16((h)->biBitCount); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
136 (h)->biCompression = le2me_32((h)->biCompression); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
137 (h)->biSizeImage = le2me_32((h)->biSizeImage); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
138 (h)->biXPelsPerMeter = le2me_32((h)->biXPelsPerMeter); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
139 (h)->biYPelsPerMeter = le2me_32((h)->biYPelsPerMeter); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
140 (h)->biClrUsed = le2me_32((h)->biClrUsed); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
141 (h)->biClrImportant = le2me_32((h)->biClrImportant); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
142 }
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
143 #define le2me_WAVEFORMATEX(h) { \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
144 (h)->wFormatTag = le2me_16((h)->wFormatTag); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
145 (h)->nChannels = le2me_16((h)->nChannels); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
146 (h)->nSamplesPerSec = le2me_32((h)->nSamplesPerSec); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
147 (h)->nAvgBytesPerSec = le2me_32((h)->nAvgBytesPerSec); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
148 (h)->nBlockAlign = le2me_16((h)->nBlockAlign); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
149 (h)->wBitsPerSample = le2me_16((h)->wBitsPerSample); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
150 (h)->cbSize = le2me_16((h)->cbSize); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
151 }
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
152 #define le2me_AVIINDEXENTRY(h) { \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
153 (h)->ckid = le2me_32((h)->ckid); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
154 (h)->dwFlags = le2me_32((h)->dwFlags); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
155 (h)->dwChunkOffset = le2me_32((h)->dwChunkOffset); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
156 (h)->dwChunkLength = le2me_32((h)->dwChunkLength); \
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
157 }
12036
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
158 #define le2me_AVISTDIDXCHUNK(h) {\
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
159 char c; \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
160 c = (h)->fcc[0]; (h)->fcc[0] = (h)->fcc[3]; (h)->fcc[3] = c; \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
161 c = (h)->fcc[1]; (h)->fcc[1] = (h)->fcc[2]; (h)->fcc[2] = c; \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
162 (h)->dwSize = le2me_32((h)->dwSize); \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
163 (h)->wLongsPerEntry = le2me_16((h)->wLongsPerEntry); \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
164 (h)->nEntriesInUse = le2me_32((h)->nEntriesInUse); \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
165 c = (h)->dwChunkId[0]; (h)->dwChunkId[0] = (h)->dwChunkId[3]; (h)->dwChunkId[3] = c; \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
166 c = (h)->dwChunkId[1]; (h)->dwChunkId[1] = (h)->dwChunkId[2]; (h)->dwChunkId[2] = c; \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
167 (h)->qwBaseOffset = le2me_64((h)->qwBaseOffset); \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
168 (h)->dwReserved3 = le2me_32((h)->dwReserved3); \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
169 }
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
170 #define le2me_AVISTDIDXENTRY(h) {\
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
171 (h)->dwOffset = le2me_32((h)->dwOffset); \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
172 (h)->dwSize = le2me_32((h)->dwSize); \
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
173 }
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
174 #define le2me_VideoPropHeader(h) { \
12046
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
175 (h)->VideoFormatToken = le2me_32((h)->VideoFormatToken); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
176 (h)->VideoStandard = le2me_32((h)->VideoStandard); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
177 (h)->dwVerticalRefreshRate = le2me_32((h)->dwVerticalRefreshRate); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
178 (h)->dwHTotalInT = le2me_32((h)->dwHTotalInT); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
179 (h)->dwVTotalInLines = le2me_32((h)->dwVTotalInLines); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
180 (h)->dwFrameAspectRatio = le2me_32((h)->dwFrameAspectRatio); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
181 (h)->dwFrameWidthInPixels = le2me_32((h)->dwFrameWidthInPixels); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
182 (h)->dwFrameHeightInLines = le2me_32((h)->dwFrameHeightInLines); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
183 (h)->nbFieldPerFrame = le2me_32((h)->nbFieldPerFrame); \
12036
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
184 }
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
185 #define le2me_VIDEO_FIELD_DESC(h) { \
12046
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
186 (h)->CompressedBMHeight = le2me_32((h)->CompressedBMHeight); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
187 (h)->CompressedBMWidth = le2me_32((h)->CompressedBMWidth); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
188 (h)->ValidBMHeight = le2me_32((h)->ValidBMHeight); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
189 (h)->ValidBMWidth = le2me_32((h)->ValidBMWidth); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
190 (h)->ValidBMXOffset = le2me_32((h)->ValidBMXOffset); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
191 (h)->ValidBMYOffset = le2me_32((h)->ValidBMYOffset); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
192 (h)->VideoXOffsetInT = le2me_32((h)->VideoXOffsetInT); \
cf68f8b514b0 Bigendian macro 10l
ranma
parents: 12036
diff changeset
193 (h)->VideoYValidStartLine = le2me_32((h)->VideoYValidStartLine); \
12036
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
194 }
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
195
1343
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
196 #else
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
197 #define le2me_MainAVIHeader(h) /**/
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
198 #define le2me_AVIStreamHeader(h) /**/
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
199 #define le2me_RECT(h) /**/
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
200 #define le2me_BITMAPINFOHEADER(h) /**/
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
201 #define le2me_WAVEFORMATEX(h) /**/
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
202 #define le2me_AVIINDEXENTRY(h) /**/
12036
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
203 #define le2me_AVISTDIDXCHUNK(h) /**/
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
204 #define le2me_AVISTDIDXENTRY(h) /**/
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
205 #define le2me_VideoPropHeader(h) /**/
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
206 #define le2me_VIDEO_FIELD_DESC(h) /**/
1343
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
207 #endif
ecaa8d0f1649 ASF support for non-x86 cpus
jkeil
parents:
diff changeset
208
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
209 typedef struct {
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
210 // index stuff:
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
211 void* idx;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
212 int idx_size;
6056
f980563afdbc big (>2GB) AVI files support - patch by Wolfram Gloger <wg@malloc.de>
arpi
parents: 2330
diff changeset
213 off_t idx_pos;
f980563afdbc big (>2GB) AVI files support - patch by Wolfram Gloger <wg@malloc.de>
arpi
parents: 2330
diff changeset
214 off_t idx_pos_a;
f980563afdbc big (>2GB) AVI files support - patch by Wolfram Gloger <wg@malloc.de>
arpi
parents: 2330
diff changeset
215 off_t idx_pos_v;
f980563afdbc big (>2GB) AVI files support - patch by Wolfram Gloger <wg@malloc.de>
arpi
parents: 2330
diff changeset
216 off_t idx_offset; // ennyit kell hozzaadni az index offset ertekekhez
8030
2b39ff3860b7 cleanup of .AVI timestamp calculation (ugly hack from mplayer.c removed,
arpi
parents: 6056
diff changeset
217 // bps-based PTS stuff:
2b39ff3860b7 cleanup of .AVI timestamp calculation (ugly hack from mplayer.c removed,
arpi
parents: 6056
diff changeset
218 int video_pack_no;
2b39ff3860b7 cleanup of .AVI timestamp calculation (ugly hack from mplayer.c removed,
arpi
parents: 6056
diff changeset
219 int audio_block_size;
2b39ff3860b7 cleanup of .AVI timestamp calculation (ugly hack from mplayer.c removed,
arpi
parents: 6056
diff changeset
220 off_t audio_block_no;
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
221 // interleaved PTS stuff:
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
222 int skip_video_frames;
2330
8f0861360325 AVI - no audio stream fix
arpi
parents: 2310
diff changeset
223 int audio_streams;
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
224 float avi_audio_pts;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
225 float avi_video_pts;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
226 float pts_correction;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
227 unsigned int pts_corr_bytes;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
228 unsigned char pts_corrected;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
229 unsigned char pts_has_video;
8208
ae5a2ae1c349 demuxer_control(), percent position and time length query implemented in
arpi
parents: 8030
diff changeset
230 unsigned int numberofframes;
12036
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
231 avisuperindex_chunk *suidx;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
232 int suidx_size;
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
233 int isodml;
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
234 } avi_priv_t;
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
235
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1343
diff changeset
236 #define AVI_PRIV ((avi_priv_t*)(demuxer->priv))
12036
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
237
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
238 #define AVI_IDX_OFFSET(x) ((((uint64_t)(x)->dwFlags&0xffff0000)<<16)+(x)->dwChunkOffset)
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
239
846ed866f86c OpenDML read/write support
ranma
parents: 8208
diff changeset
240 #endif /* _aviheader_h */