Mercurial > mplayer.hg
annotate libmpdemux/ms_hdr.h @ 18044:b693d92e6210
workaround to prevent segfault: when using -ve lavc with b-frames write_chunk(1st video frame) gets called with len=-1UL; -1ULl to whomever calls me that way
author | nicodvb |
---|---|
date | Wed, 05 Apr 2006 20:51:35 +0000 |
parents | 6f18105c058a |
children | 20673742a6e7 |
rev | line source |
---|---|
12341
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
1 #ifndef __MS_HEADER_H |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
2 #define __MS_HEADER_H 1 |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
3 |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
4 #ifndef _WAVEFORMATEX_ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
5 #define _WAVEFORMATEX_ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
6 typedef struct __attribute__((__packed__)) _WAVEFORMATEX { |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
7 unsigned short wFormatTag; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
8 unsigned short nChannels; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
9 unsigned int nSamplesPerSec; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
10 unsigned int nAvgBytesPerSec; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
11 unsigned short nBlockAlign; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
12 unsigned short wBitsPerSample; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
13 unsigned short cbSize; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
14 } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
15 #endif /* _WAVEFORMATEX_ */ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
16 |
12979
6f18105c058a
Better protection against double definition of MPEGLAYER3WAVEFORMAT
wight
parents:
12341
diff
changeset
|
17 #ifndef _MPEGLAYER3WAVEFORMAT_ |
6f18105c058a
Better protection against double definition of MPEGLAYER3WAVEFORMAT
wight
parents:
12341
diff
changeset
|
18 #define _MPEGLAYER3WAVEFORMAT_ |
12341
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
19 typedef struct __attribute__((__packed__)) mpeglayer3waveformat_tag { |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
20 WAVEFORMATEX wf; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
21 unsigned short wID; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
22 unsigned int fdwFlags; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
23 unsigned short nBlockSize; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
24 unsigned short nFramesPerBlock; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
25 unsigned short nCodecDelay; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
26 } MPEGLAYER3WAVEFORMAT; |
12979
6f18105c058a
Better protection against double definition of MPEGLAYER3WAVEFORMAT
wight
parents:
12341
diff
changeset
|
27 #endif /* _MPEGLAYER3WAVEFORMAT_ */ |
12341
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
28 |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
29 #if !defined(_BITMAPINFOHEADER_) && !defined(_WINGDI_H) |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
30 #define _BITMAPINFOHEADER_ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
31 typedef struct __attribute__((__packed__)) |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
32 { |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
33 int biSize; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
34 int biWidth; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
35 int biHeight; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
36 short biPlanes; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
37 short biBitCount; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
38 int biCompression; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
39 int biSizeImage; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
40 int biXPelsPerMeter; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
41 int biYPelsPerMeter; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
42 int biClrUsed; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
43 int biClrImportant; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
44 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
45 typedef struct { |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
46 BITMAPINFOHEADER bmiHeader; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
47 int bmiColors[1]; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
48 } BITMAPINFO, *LPBITMAPINFO; |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
49 #endif |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
50 |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
51 #ifndef le2me_BITMAPINFOHEADER |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
52 #ifdef WORDS_BIGENDIAN |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
53 #define le2me_BITMAPINFOHEADER(h) { \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
54 (h)->biSize = le2me_32((h)->biSize); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
55 (h)->biWidth = le2me_32((h)->biWidth); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
56 (h)->biHeight = le2me_32((h)->biHeight); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
57 (h)->biPlanes = le2me_16((h)->biPlanes); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
58 (h)->biBitCount = le2me_16((h)->biBitCount); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
59 (h)->biCompression = le2me_32((h)->biCompression); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
60 (h)->biSizeImage = le2me_32((h)->biSizeImage); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
61 (h)->biXPelsPerMeter = le2me_32((h)->biXPelsPerMeter); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
62 (h)->biYPelsPerMeter = le2me_32((h)->biYPelsPerMeter); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
63 (h)->biClrUsed = le2me_32((h)->biClrUsed); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
64 (h)->biClrImportant = le2me_32((h)->biClrImportant); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
65 } |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
66 #define le2me_WAVEFORMATEX(h) { \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
67 (h)->wFormatTag = le2me_16((h)->wFormatTag); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
68 (h)->nChannels = le2me_16((h)->nChannels); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
69 (h)->nSamplesPerSec = le2me_32((h)->nSamplesPerSec); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
70 (h)->nAvgBytesPerSec = le2me_32((h)->nAvgBytesPerSec); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
71 (h)->nBlockAlign = le2me_16((h)->nBlockAlign); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
72 (h)->wBitsPerSample = le2me_16((h)->wBitsPerSample); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
73 (h)->cbSize = le2me_16((h)->cbSize); \ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
74 } |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
75 #else |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
76 #define le2me_BITMAPINFOHEADER(h) /**/ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
77 #define le2me_WAVEFORMATEX(h) /**/ |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
78 #endif |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
79 #endif |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
80 |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
diff
changeset
|
81 #endif |