annotate libmpdemux/ms_hdr.h @ 22199:cc89992b27a3

demuxers must ignore unknown lang/country codes, it seems we all agree that this should be stated clearly it follows from the fact that new language and country codes are added to the ISO standards from time to time and that a compliant demuxer must not reject a valid file which uses such a new code which was not know when the demuxer was written
author michael
date Wed, 14 Feb 2007 12:29:09 +0000
parents 6f18105c058a
children 20673742a6e7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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