Mercurial > mplayer.hg
annotate libaf/af_format.h @ 30784:7e887f9d634d
Fill the r, g, b values used for computing the c->pal_yuv table in the
case where the source format is PIX_FMT_GRAY8.
This is required as PIX_FMT_GRAY8 has been declared as a paletted
format in FFmpeg r22191, fix GRAY8 -> RGB conversion.
author | stefano |
---|---|
date | Thu, 04 Mar 2010 00:31:13 +0000 |
parents | 02b9c1a452e1 |
children | febe300dbfc0 |
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) |
64 #define AF_FORMAT_SPECIAL_MASK (7<<6) | |
65 | |
66 // PREDEFINED formats | |
67 | |
68 #define AF_FORMAT_U8 (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_8BIT|AF_FORMAT_NE) | |
69 #define AF_FORMAT_S8 (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_8BIT|AF_FORMAT_NE) | |
70 #define AF_FORMAT_U16_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_LE) | |
71 #define AF_FORMAT_U16_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_BE) | |
72 #define AF_FORMAT_S16_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_LE) | |
73 #define AF_FORMAT_S16_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_BE) | |
74 #define AF_FORMAT_U24_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_LE) | |
75 #define AF_FORMAT_U24_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_BE) | |
76 #define AF_FORMAT_S24_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_LE) | |
77 #define AF_FORMAT_S24_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_BE) | |
78 #define AF_FORMAT_U32_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_LE) | |
79 #define AF_FORMAT_U32_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_BE) | |
80 #define AF_FORMAT_S32_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_LE) | |
81 #define AF_FORMAT_S32_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_BE) | |
8994 | 82 |
14245 | 83 #define AF_FORMAT_FLOAT_LE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_LE) |
84 #define AF_FORMAT_FLOAT_BE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_BE) | |
8994 | 85 |
30241
02b9c1a452e1
Add support for distinguishing between little- and big-endian SPDIF AC3
reimar
parents:
30234
diff
changeset
|
86 #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
|
87 #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
|
88 |
29401
f01023c524c3
Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
diego
parents:
28339
diff
changeset
|
89 #if HAVE_BIGENDIAN |
14245 | 90 #define AF_FORMAT_U16_NE AF_FORMAT_U16_BE |
91 #define AF_FORMAT_S16_NE AF_FORMAT_S16_BE | |
92 #define AF_FORMAT_U24_NE AF_FORMAT_U24_BE | |
93 #define AF_FORMAT_S24_NE AF_FORMAT_S24_BE | |
94 #define AF_FORMAT_U32_NE AF_FORMAT_U32_BE | |
95 #define AF_FORMAT_S32_NE AF_FORMAT_S32_BE | |
96 #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
|
97 #define AF_FORMAT_AC3_NE AF_FORMAT_AC3_BE |
14245 | 98 #else |
99 #define AF_FORMAT_U16_NE AF_FORMAT_U16_LE | |
100 #define AF_FORMAT_S16_NE AF_FORMAT_S16_LE | |
101 #define AF_FORMAT_U24_NE AF_FORMAT_U24_LE | |
102 #define AF_FORMAT_S24_NE AF_FORMAT_S24_LE | |
103 #define AF_FORMAT_U32_NE AF_FORMAT_U32_LE | |
104 #define AF_FORMAT_S32_NE AF_FORMAT_S32_LE | |
105 #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
|
106 #define AF_FORMAT_AC3_NE AF_FORMAT_AC3_LE |
14245 | 107 #endif |
108 | |
20771
1e78e35b6c7b
Change value used to indicate "unknown audio format" from 0 to -1.
uau
parents:
19108
diff
changeset
|
109 #define AF_FORMAT_UNKNOWN (-1) |
1e78e35b6c7b
Change value used to indicate "unknown audio format" from 0 to -1.
uau
parents:
19108
diff
changeset
|
110 |
30234 | 111 #define AF_FORMAT_IS_AC3(fmt) (((fmt) & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_AC3) |
112 | |
28051 | 113 int af_str2fmt(const char *str); |
114 int af_str2fmt_short(const char *str); | |
115 int af_fmt2bits(int format); | |
116 int af_bits2fmt(int bits); | |
117 char* af_fmt2str(int format, char* str, int size); | |
118 const char* af_fmt2str_short(int format); | |
14245 | 119 |
26029 | 120 #endif /* MPLAYER_AF_FORMAT_H */ |