Mercurial > mplayer.hg
annotate libaf/af_format.h @ 34221:12bcb27faa26
Do not create a 0-sized palette side data from extradata.
Fixes decoding of interplay video files.
author | reimar |
---|---|
date | Sun, 06 Nov 2011 00:26:16 +0000 |
parents | febe300dbfc0 |
children | 5ec9b96eaa48 |
rev | line source |
---|---|
28229
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
1 /* |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
2 * The sample format system used lin libaf is based on bitmasks. |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
3 * The format definition only refers to the storage format, |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
4 * not the resolution. |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
5 * |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
6 * This file is part of MPlayer. |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
7 * |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
8 * MPlayer is free software; you can redistribute it and/or modify |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
11 * (at your option) any later version. |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
12 * |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
13 * MPlayer is distributed in the hope that it will be useful, |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
16 * GNU General Public License for more details. |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
17 * |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
18 * You should have received a copy of the GNU General Public License along |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
19 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
72d0b1444141
Replace informal license notices by standard license header
diego
parents:
28051
diff
changeset
|
21 */ |
26029 | 22 |
23 #ifndef MPLAYER_AF_FORMAT_H | |
24 #define MPLAYER_AF_FORMAT_H | |
8167 | 25 |
26064
e173fde700da
Replace silly check for config.h inclusion, just include it.
diego
parents:
26029
diff
changeset
|
26 #include "config.h" |
14479 | 27 |
24595 | 28 // Endianness |
8167 | 29 #define AF_FORMAT_BE (0<<0) // Big Endian |
30 #define AF_FORMAT_LE (1<<0) // Little Endian | |
31 #define AF_FORMAT_END_MASK (1<<0) | |
32 | |
29401
f01023c524c3
Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
diego
parents:
28339
diff
changeset
|
33 #if HAVE_BIGENDIAN // Native endian of cpu |
8167 | 34 #define AF_FORMAT_NE AF_FORMAT_BE |
35 #else | |
36 #define AF_FORMAT_NE AF_FORMAT_LE | |
37 #endif | |
38 | |
39 // Signed/unsigned | |
14245 | 40 #define AF_FORMAT_SI (0<<1) // Signed |
41 #define AF_FORMAT_US (1<<1) // Unsigned | |
8167 | 42 #define AF_FORMAT_SIGN_MASK (1<<1) |
43 | |
13550
81e62cbe57d9
reimplementation of the pl_extrastereo and pl_volnorm plugins
alex
parents:
8994
diff
changeset
|
44 // Fixed or floating point |
8167 | 45 #define AF_FORMAT_I (0<<2) // Int |
46 #define AF_FORMAT_F (1<<2) // Foating point | |
47 #define AF_FORMAT_POINT_MASK (1<<2) | |
48 | |
14245 | 49 // Bits used |
50 #define AF_FORMAT_8BIT (0<<3) | |
51 #define AF_FORMAT_16BIT (1<<3) | |
52 #define AF_FORMAT_24BIT (2<<3) | |
53 #define AF_FORMAT_32BIT (3<<3) | |
54 #define AF_FORMAT_40BIT (4<<3) | |
55 #define AF_FORMAT_48BIT (5<<3) | |
56 #define AF_FORMAT_BITS_MASK (7<<3) | |
57 | |
8167 | 58 // Special flags refering to non pcm data |
14245 | 59 #define AF_FORMAT_MU_LAW (1<<6) |
60 #define AF_FORMAT_A_LAW (2<<6) | |
61 #define AF_FORMAT_MPEG2 (3<<6) // MPEG(2) audio | |
30233
0acca3a641a6
Revert r30170, AF_FORMAT_AC3 is supposed to be the special mask,
reimar
parents:
30128
diff
changeset
|
62 #define AF_FORMAT_AC3 (4<<6) // Dolby Digital AC3 |
14245 | 63 #define AF_FORMAT_IMA_ADPCM (5<<6) |
34103 | 64 #define AF_FORMAT_IEC61937 (6<<6) |
14245 | 65 #define AF_FORMAT_SPECIAL_MASK (7<<6) |
66 | |
67 // PREDEFINED formats | |
68 | |
69 #define AF_FORMAT_U8 (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_8BIT|AF_FORMAT_NE) | |
70 #define AF_FORMAT_S8 (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_8BIT|AF_FORMAT_NE) | |
71 #define AF_FORMAT_U16_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_LE) | |
72 #define AF_FORMAT_U16_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_BE) | |
73 #define AF_FORMAT_S16_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_LE) | |
74 #define AF_FORMAT_S16_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_BE) | |
75 #define AF_FORMAT_U24_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_LE) | |
76 #define AF_FORMAT_U24_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_BE) | |
77 #define AF_FORMAT_S24_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_LE) | |
78 #define AF_FORMAT_S24_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_BE) | |
79 #define AF_FORMAT_U32_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_LE) | |
80 #define AF_FORMAT_U32_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_BE) | |
81 #define AF_FORMAT_S32_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_LE) | |
82 #define AF_FORMAT_S32_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_BE) | |
8994 | 83 |
14245 | 84 #define AF_FORMAT_FLOAT_LE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_LE) |
85 #define AF_FORMAT_FLOAT_BE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_BE) | |
8994 | 86 |
30241
02b9c1a452e1
Add support for distinguishing between little- and big-endian SPDIF AC3
reimar
parents:
30234
diff
changeset
|
87 #define AF_FORMAT_AC3_LE (AF_FORMAT_AC3|AF_FORMAT_16BIT|AF_FORMAT_LE) |
02b9c1a452e1
Add support for distinguishing between little- and big-endian SPDIF AC3
reimar
parents:
30234
diff
changeset
|
88 #define AF_FORMAT_AC3_BE (AF_FORMAT_AC3|AF_FORMAT_16BIT|AF_FORMAT_BE) |
02b9c1a452e1
Add support for distinguishing between little- and big-endian SPDIF AC3
reimar
parents:
30234
diff
changeset
|
89 |
34103 | 90 #define AF_FORMAT_IEC61937_LE (AF_FORMAT_IEC61937|AF_FORMAT_16BIT|AF_FORMAT_LE) |
91 #define AF_FORMAT_IEC61937_BE (AF_FORMAT_IEC61937|AF_FORMAT_16BIT|AF_FORMAT_BE) | |
92 | |
29401
f01023c524c3
Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
diego
parents:
28339
diff
changeset
|
93 #if HAVE_BIGENDIAN |
14245 | 94 #define AF_FORMAT_U16_NE AF_FORMAT_U16_BE |
95 #define AF_FORMAT_S16_NE AF_FORMAT_S16_BE | |
96 #define AF_FORMAT_U24_NE AF_FORMAT_U24_BE | |
97 #define AF_FORMAT_S24_NE AF_FORMAT_S24_BE | |
98 #define AF_FORMAT_U32_NE AF_FORMAT_U32_BE | |
99 #define AF_FORMAT_S32_NE AF_FORMAT_S32_BE | |
100 #define AF_FORMAT_FLOAT_NE AF_FORMAT_FLOAT_BE | |
30241
02b9c1a452e1
Add support for distinguishing between little- and big-endian SPDIF AC3
reimar
parents:
30234
diff
changeset
|
101 #define AF_FORMAT_AC3_NE AF_FORMAT_AC3_BE |
34103 | 102 #define AF_FORMAT_IEC61937_NE AF_FORMAT_IEC61937_BE |
14245 | 103 #else |
104 #define AF_FORMAT_U16_NE AF_FORMAT_U16_LE | |
105 #define AF_FORMAT_S16_NE AF_FORMAT_S16_LE | |
106 #define AF_FORMAT_U24_NE AF_FORMAT_U24_LE | |
107 #define AF_FORMAT_S24_NE AF_FORMAT_S24_LE | |
108 #define AF_FORMAT_U32_NE AF_FORMAT_U32_LE | |
109 #define AF_FORMAT_S32_NE AF_FORMAT_S32_LE | |
110 #define AF_FORMAT_FLOAT_NE AF_FORMAT_FLOAT_LE | |
30241
02b9c1a452e1
Add support for distinguishing between little- and big-endian SPDIF AC3
reimar
parents:
30234
diff
changeset
|
111 #define AF_FORMAT_AC3_NE AF_FORMAT_AC3_LE |
34103 | 112 #define AF_FORMAT_IEC61937_NE AF_FORMAT_IEC61937_LE |
14245 | 113 #endif |
114 | |
20771
1e78e35b6c7b
Change value used to indicate "unknown audio format" from 0 to -1.
uau
parents:
19108
diff
changeset
|
115 #define AF_FORMAT_UNKNOWN (-1) |
1e78e35b6c7b
Change value used to indicate "unknown audio format" from 0 to -1.
uau
parents:
19108
diff
changeset
|
116 |
30234 | 117 #define AF_FORMAT_IS_AC3(fmt) (((fmt) & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_AC3) |
34103 | 118 #define AF_FORMAT_IS_IEC61937(fmt) (((fmt) & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_IEC61937) |
30234 | 119 |
28051 | 120 int af_str2fmt(const char *str); |
121 int af_str2fmt_short(const char *str); | |
122 int af_fmt2bits(int format); | |
123 int af_bits2fmt(int bits); | |
124 char* af_fmt2str(int format, char* str, int size); | |
125 const char* af_fmt2str_short(int format); | |
14245 | 126 |
26029 | 127 #endif /* MPLAYER_AF_FORMAT_H */ |