Mercurial > mplayer.hg
annotate aviheader.h @ 2100:6f6eb4f8e7a0
finished mov header and index processing
author | arpi |
---|---|
date | Fri, 05 Oct 2001 23:13:26 +0000 |
parents | b895f95e7657 |
children |
rev | line source |
---|---|
1343 | 1 #ifndef _aviheader_h |
2 #define _aviheader_h | |
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 | 5 #include "bswap.h" |
6 | |
7 /* | |
8 * Some macros to swap little endian structures read from an AVI file | |
9 * into machine endian format | |
10 */ | |
11 #ifdef WORDS_BIGENDIAN | |
12 #define le2me_MainAVIHeader(h) { \ | |
13 (h)->dwMicroSecPerFrame = le2me_32((h)->dwMicroSecPerFrame); \ | |
14 (h)->dwMaxBytesPerSec = le2me_32((h)->dwMaxBytesPerSec); \ | |
15 (h)->dwPaddingGranularity = le2me_32((h)->dwPaddingGranularity); \ | |
16 (h)->dwFlags = le2me_32((h)->dwFlags); \ | |
17 (h)->dwTotalFrames = le2me_32((h)->dwTotalFrames); \ | |
18 (h)->dwInitialFrames = le2me_32((h)->dwInitialFrames); \ | |
19 (h)->dwStreams = le2me_32((h)->dwStreams); \ | |
20 (h)->dwSuggestedBufferSize = le2me_32((h)->dwSuggestedBufferSize); \ | |
21 (h)->dwWidth = le2me_32((h)->dwWidth); \ | |
22 (h)->dwHeight = le2me_32((h)->dwHeight); \ | |
23 } | |
24 | |
25 #define le2me_AVIStreamHeader(h) { \ | |
26 (h)->fccType = le2me_32((h)->fccType); \ | |
27 (h)->fccHandler = le2me_32((h)->fccHandler); \ | |
28 (h)->dwFlags = le2me_32((h)->dwFlags); \ | |
29 (h)->wPriority = le2me_16((h)->wPriority); \ | |
30 (h)->wLanguage = le2me_16((h)->wLanguage); \ | |
31 (h)->dwInitialFrames = le2me_32((h)->dwInitialFrames); \ | |
32 (h)->dwScale = le2me_32((h)->dwScale); \ | |
33 (h)->dwRate = le2me_32((h)->dwRate); \ | |
34 (h)->dwStart = le2me_32((h)->dwStart); \ | |
35 (h)->dwLength = le2me_32((h)->dwLength); \ | |
36 (h)->dwSuggestedBufferSize = le2me_32((h)->dwSuggestedBufferSize); \ | |
37 (h)->dwQuality = le2me_32((h)->dwQuality); \ | |
38 (h)->dwSampleSize = le2me_32((h)->dwSampleSize); \ | |
39 le2me_RECT(&(h)->rcFrame); \ | |
40 } | |
41 #define le2me_RECT(h) { \ | |
42 (h)->left = le2me_16((h)->left); \ | |
43 (h)->top = le2me_16((h)->top); \ | |
44 (h)->right = le2me_16((h)->right); \ | |
45 (h)->bottom = le2me_16((h)->bottom); \ | |
46 } | |
47 #define le2me_BITMAPINFOHEADER(h) { \ | |
48 (h)->biSize = le2me_32((h)->biSize); \ | |
49 (h)->biWidth = le2me_32((h)->biWidth); \ | |
50 (h)->biHeight = le2me_32((h)->biHeight); \ | |
51 (h)->biPlanes = le2me_16((h)->biPlanes); \ | |
52 (h)->biBitCount = le2me_16((h)->biBitCount); \ | |
53 (h)->biCompression = le2me_32((h)->biCompression); \ | |
54 (h)->biSizeImage = le2me_32((h)->biSizeImage); \ | |
55 (h)->biXPelsPerMeter = le2me_32((h)->biXPelsPerMeter); \ | |
56 (h)->biYPelsPerMeter = le2me_32((h)->biYPelsPerMeter); \ | |
57 (h)->biClrUsed = le2me_32((h)->biClrUsed); \ | |
58 (h)->biClrImportant = le2me_32((h)->biClrImportant); \ | |
59 } | |
60 #define le2me_WAVEFORMATEX(h) { \ | |
61 (h)->wFormatTag = le2me_16((h)->wFormatTag); \ | |
62 (h)->nChannels = le2me_16((h)->nChannels); \ | |
63 (h)->nSamplesPerSec = le2me_32((h)->nSamplesPerSec); \ | |
64 (h)->nAvgBytesPerSec = le2me_32((h)->nAvgBytesPerSec); \ | |
65 (h)->nBlockAlign = le2me_16((h)->nBlockAlign); \ | |
66 (h)->wBitsPerSample = le2me_16((h)->wBitsPerSample); \ | |
67 (h)->cbSize = le2me_16((h)->cbSize); \ | |
68 } | |
69 #define le2me_AVIINDEXENTRY(h) { \ | |
70 (h)->ckid = le2me_32((h)->ckid); \ | |
71 (h)->dwFlags = le2me_32((h)->dwFlags); \ | |
72 (h)->dwChunkOffset = le2me_32((h)->dwChunkOffset); \ | |
73 (h)->dwChunkLength = le2me_32((h)->dwChunkLength); \ | |
74 } | |
75 #else | |
76 #define le2me_MainAVIHeader(h) /**/ | |
77 #define le2me_AVIStreamHeader(h) /**/ | |
78 #define le2me_RECT(h) /**/ | |
79 #define le2me_BITMAPINFOHEADER(h) /**/ | |
80 #define le2me_WAVEFORMATEX(h) /**/ | |
81 #define le2me_AVIINDEXENTRY(h) /**/ | |
82 #endif | |
83 | |
84 | |
85 #endif | |
1485
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
86 |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
87 |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
88 typedef struct { |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
89 // index stuff: |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
90 void* idx; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
91 int idx_size; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
92 int idx_pos; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
93 int idx_pos_a; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
94 int idx_pos_v; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
95 int idx_offset; // ennyit kell hozzaadni az index offset ertekekhez |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
96 // interleaved PTS stuff: |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
97 int skip_video_frames; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
98 float avi_audio_pts; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
99 float avi_video_pts; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
100 float pts_correction; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
101 unsigned int pts_corr_bytes; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
102 unsigned char pts_corrected; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
103 unsigned char pts_has_video; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
104 } avi_priv_t; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
105 |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1343
diff
changeset
|
106 #define AVI_PRIV ((avi_priv_t*)(demuxer->priv)) |