Mercurial > libavcodec.hg
annotate ac3tab.c @ 11104:bb877c9cb102 libavcodec
Detect spatial direct MBs partitioned smaller than 16x16 that can be partitioned
as 16x16 (except ones changing interlacing relative to the colocated MB).
20 cycles slower during MV generation
175 cycles faster during MC
author | michael |
---|---|
date | Mon, 08 Feb 2010 16:23:05 +0000 |
parents | 54b6170a608b |
children | 7dd2a45249a9 |
rev | line source |
---|---|
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
1 /* |
7470
1a93d3bbe3ee
cosmetics: make all references to AC-3 capitalized and hyphenated
jbr
parents:
6671
diff
changeset
|
2 * AC-3 tables |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
3 * copyright (c) 2001 Fabrice Bellard |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
4 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
5 * This file is part of FFmpeg. |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
6 * |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
9 * License as published by the Free Software Foundation; either |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
11 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
15 * Lesser General Public License for more details. |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
16 * |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
17 * You should have received a copy of the GNU Lesser General Public |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
20 */ |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3668
diff
changeset
|
21 |
1106 | 22 /** |
8718
e9d9d946f213
Use full internal pathname in doxygen @file directives.
diego
parents:
7470
diff
changeset
|
23 * @file libavcodec/ac3tab.c |
7470
1a93d3bbe3ee
cosmetics: make all references to AC-3 capitalized and hyphenated
jbr
parents:
6671
diff
changeset
|
24 * tables taken directly from the AC-3 spec. |
1106 | 25 */ |
0 | 26 |
9512
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
27 #include "avcodec.h" |
4879 | 28 #include "ac3tab.h" |
29 | |
4645
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
30 /** |
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
31 * Possible frame sizes. |
4679 | 32 * from ATSC A/52 Table 5.18 Frame Size Code Table. |
4645
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
33 */ |
6002 | 34 const uint16_t ff_ac3_frame_size_tab[38][3] = { |
4679 | 35 { 64, 69, 96 }, |
36 { 64, 70, 96 }, | |
37 { 80, 87, 120 }, | |
38 { 80, 88, 120 }, | |
39 { 96, 104, 144 }, | |
40 { 96, 105, 144 }, | |
41 { 112, 121, 168 }, | |
42 { 112, 122, 168 }, | |
43 { 128, 139, 192 }, | |
44 { 128, 140, 192 }, | |
45 { 160, 174, 240 }, | |
46 { 160, 175, 240 }, | |
47 { 192, 208, 288 }, | |
48 { 192, 209, 288 }, | |
49 { 224, 243, 336 }, | |
50 { 224, 244, 336 }, | |
51 { 256, 278, 384 }, | |
52 { 256, 279, 384 }, | |
53 { 320, 348, 480 }, | |
54 { 320, 349, 480 }, | |
55 { 384, 417, 576 }, | |
56 { 384, 418, 576 }, | |
57 { 448, 487, 672 }, | |
58 { 448, 488, 672 }, | |
59 { 512, 557, 768 }, | |
60 { 512, 558, 768 }, | |
61 { 640, 696, 960 }, | |
62 { 640, 697, 960 }, | |
63 { 768, 835, 1152 }, | |
64 { 768, 836, 1152 }, | |
65 { 896, 975, 1344 }, | |
66 { 896, 976, 1344 }, | |
67 { 1024, 1114, 1536 }, | |
68 { 1024, 1115, 1536 }, | |
69 { 1152, 1253, 1728 }, | |
70 { 1152, 1254, 1728 }, | |
71 { 1280, 1393, 1920 }, | |
72 { 1280, 1394, 1920 }, | |
73 }; | |
4645
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
74 |
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
75 /** |
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
76 * Maps audio coding mode (acmod) to number of full-bandwidth channels. |
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
77 * from ATSC A/52 Table 5.8 Audio Coding Mode |
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
78 */ |
6002 | 79 const uint8_t ff_ac3_channels_tab[8] = { |
4645
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
80 2, 1, 2, 3, 3, 4, 4, 5 |
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
81 }; |
056127e5df89
remove redundancy in AC-3 parser by using common tables from ac3tab.h
jbr
parents:
4643
diff
changeset
|
82 |
9512
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
83 /** |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
84 * Maps audio coding mode (acmod) to channel layout mask. |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
85 */ |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
86 const uint16_t ff_ac3_channel_layout_tab[8] = { |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
87 CH_LAYOUT_STEREO, |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
88 CH_LAYOUT_MONO, |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
89 CH_LAYOUT_STEREO, |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
90 CH_LAYOUT_SURROUND, |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
91 CH_LAYOUT_2_1, |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
92 CH_LAYOUT_4POINT0, |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
93 CH_LAYOUT_2_2, |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
94 CH_LAYOUT_5POINT0 |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
95 }; |
ba5d9a97ab2f
Add channel layout support to the AC-3 decoder and AC-3 parser.
jbr
parents:
9454
diff
changeset
|
96 |
9454
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
97 #define COMMON_CHANNEL_MAP \ |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
98 { { 0, 1, }, { 0, 1, 2, } },\ |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
99 { { 0, }, { 0, 1, } },\ |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
100 { { 0, 1, }, { 0, 1, 2, } },\ |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
101 { { 0, 2, 1, }, { 0, 2, 1, 3, } },\ |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
102 { { 0, 1, 2, }, { 0, 1, 3, 2, } },\ |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
103 { { 0, 2, 1, 3, }, { 0, 2, 1, 4, 3, } }, |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
104 |
9452 | 105 /** |
106 * Table to remap channels from SMPTE order to AC-3 order. | |
107 * [channel_mode][lfe][ch] | |
108 */ | |
109 const uint8_t ff_ac3_enc_channel_map[8][2][6] = { | |
9454
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
110 COMMON_CHANNEL_MAP |
10191
54b6170a608b
Update AC-3 channel map. 2F/2R layout only has 4 channels. This correction
jbr
parents:
9512
diff
changeset
|
111 { { 0, 1, 2, 3, }, { 0, 1, 3, 4, 2, } }, |
9452 | 112 { { 0, 2, 1, 3, 4, }, { 0, 2, 1, 4, 5, 3 } }, |
113 }; | |
114 | |
9454
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
115 /** |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
116 * Table to remap channels from from AC-3 order to SMPTE order. |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
117 * [channel_mode][lfe][ch] |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
118 */ |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
119 const uint8_t ff_ac3_dec_channel_map[8][2][6] = { |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
120 COMMON_CHANNEL_MAP |
10191
54b6170a608b
Update AC-3 channel map. 2F/2R layout only has 4 channels. This correction
jbr
parents:
9512
diff
changeset
|
121 { { 0, 1, 2, 3, }, { 0, 1, 4, 2, 3, } }, |
9454
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
122 { { 0, 2, 1, 3, 4, }, { 0, 2, 1, 5, 3, 4 } }, |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
123 }; |
7db61b0d21f9
ac3dec: reorder output channels to SMPTE channel order
jbr
parents:
9452
diff
changeset
|
124 |
782 | 125 /* possible frequencies */ |
6002 | 126 const uint16_t ff_ac3_sample_rate_tab[3] = { 48000, 44100, 32000 }; |
782 | 127 |
0 | 128 /* possible bitrates */ |
6002 | 129 const uint16_t ff_ac3_bitrate_tab[19] = { |
2967 | 130 32, 40, 48, 56, 64, 80, 96, 112, 128, |
131 160, 192, 224, 256, 320, 384, 448, 512, 576, 640 | |
0 | 132 }; |
133 | |
7470
1a93d3bbe3ee
cosmetics: make all references to AC-3 capitalized and hyphenated
jbr
parents:
6671
diff
changeset
|
134 /* AC-3 MDCT window */ |
3280
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
135 |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
136 /* MDCT window */ |
4643
1e175640dad3
Remove common code from AC-3 encoder and utilize ac3.c.
jbr
parents:
3947
diff
changeset
|
137 const int16_t ff_ac3_window[256] = { |
3280
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
138 4, 7, 12, 16, 21, 28, 34, 42, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
139 51, 61, 72, 84, 97, 111, 127, 145, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
140 164, 184, 207, 231, 257, 285, 315, 347, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
141 382, 419, 458, 500, 544, 591, 641, 694, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
142 750, 810, 872, 937, 1007, 1079, 1155, 1235, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
143 1318, 1406, 1497, 1593, 1692, 1796, 1903, 2016, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
144 2132, 2253, 2379, 2509, 2644, 2783, 2927, 3076, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
145 3230, 3389, 3552, 3721, 3894, 4072, 4255, 4444, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
146 4637, 4835, 5038, 5246, 5459, 5677, 5899, 6127, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
147 6359, 6596, 6837, 7083, 7334, 7589, 7848, 8112, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
148 8380, 8652, 8927, 9207, 9491, 9778,10069,10363, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
149 10660,10960,11264,11570,11879,12190,12504,12820, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
150 13138,13458,13780,14103,14427,14753,15079,15407, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
151 15735,16063,16392,16720,17049,17377,17705,18032, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
152 18358,18683,19007,19330,19651,19970,20287,20602, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
153 20914,21225,21532,21837,22139,22438,22733,23025, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
154 23314,23599,23880,24157,24430,24699,24964,25225, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
155 25481,25732,25979,26221,26459,26691,26919,27142, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
156 27359,27572,27780,27983,28180,28373,28560,28742, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
157 28919,29091,29258,29420,29577,29729,29876,30018, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
158 30155,30288,30415,30538,30657,30771,30880,30985, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
159 31086,31182,31274,31363,31447,31528,31605,31678, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
160 31747,31814,31877,31936,31993,32046,32097,32145, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
161 32190,32232,32272,32310,32345,32378,32409,32438, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
162 32465,32490,32513,32535,32556,32574,32592,32608, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
163 32623,32636,32649,32661,32671,32681,32690,32698, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
164 32705,32712,32718,32724,32729,32733,32737,32741, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
165 32744,32747,32750,32752,32754,32756,32757,32759, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
166 32760,32761,32762,32763,32764,32764,32765,32765, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
167 32766,32766,32766,32766,32767,32767,32767,32767, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
168 32767,32767,32767,32767,32767,32767,32767,32767, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
169 32767,32767,32767,32767,32767,32767,32767,32767, |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
170 }; |
894ef0dba687
Revert bad ac3enc commit, the commited code was bigger and slower.
banan
parents:
3269
diff
changeset
|
171 |
6002 | 172 const uint8_t ff_ac3_log_add_tab[260]= { |
5671 | 173 0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37, |
174 0x36,0x35,0x34,0x34,0x33,0x32,0x31,0x30,0x2f,0x2f, | |
175 0x2e,0x2d,0x2c,0x2c,0x2b,0x2a,0x29,0x29,0x28,0x27, | |
176 0x26,0x26,0x25,0x24,0x24,0x23,0x23,0x22,0x21,0x21, | |
177 0x20,0x20,0x1f,0x1e,0x1e,0x1d,0x1d,0x1c,0x1c,0x1b, | |
178 0x1b,0x1a,0x1a,0x19,0x19,0x18,0x18,0x17,0x17,0x16, | |
179 0x16,0x15,0x15,0x15,0x14,0x14,0x13,0x13,0x13,0x12, | |
180 0x12,0x12,0x11,0x11,0x11,0x10,0x10,0x10,0x0f,0x0f, | |
181 0x0f,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c, | |
182 0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a, | |
183 0x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08, | |
184 0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06, | |
185 0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05, | |
186 0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04, | |
187 0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03, | |
188 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x02, | |
189 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, | |
190 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01, | |
191 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, | |
192 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, | |
193 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, | |
194 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | |
195 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | |
196 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | |
197 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | |
198 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | |
0 | 199 }; |
200 | |
6002 | 201 const uint16_t ff_ac3_hearing_threshold_tab[50][3]= { |
0 | 202 { 0x04d0,0x04f0,0x0580 }, |
203 { 0x04d0,0x04f0,0x0580 }, | |
204 { 0x0440,0x0460,0x04b0 }, | |
205 { 0x0400,0x0410,0x0450 }, | |
206 { 0x03e0,0x03e0,0x0420 }, | |
207 { 0x03c0,0x03d0,0x03f0 }, | |
208 { 0x03b0,0x03c0,0x03e0 }, | |
209 { 0x03b0,0x03b0,0x03d0 }, | |
210 { 0x03a0,0x03b0,0x03c0 }, | |
211 { 0x03a0,0x03a0,0x03b0 }, | |
212 { 0x03a0,0x03a0,0x03b0 }, | |
213 { 0x03a0,0x03a0,0x03b0 }, | |
214 { 0x03a0,0x03a0,0x03a0 }, | |
215 { 0x0390,0x03a0,0x03a0 }, | |
216 { 0x0390,0x0390,0x03a0 }, | |
217 { 0x0390,0x0390,0x03a0 }, | |
218 { 0x0380,0x0390,0x03a0 }, | |
219 { 0x0380,0x0380,0x03a0 }, | |
220 { 0x0370,0x0380,0x03a0 }, | |
221 { 0x0370,0x0380,0x03a0 }, | |
222 { 0x0360,0x0370,0x0390 }, | |
223 { 0x0360,0x0370,0x0390 }, | |
224 { 0x0350,0x0360,0x0390 }, | |
225 { 0x0350,0x0360,0x0390 }, | |
226 { 0x0340,0x0350,0x0380 }, | |
227 { 0x0340,0x0350,0x0380 }, | |
228 { 0x0330,0x0340,0x0380 }, | |
229 { 0x0320,0x0340,0x0370 }, | |
230 { 0x0310,0x0320,0x0360 }, | |
231 { 0x0300,0x0310,0x0350 }, | |
232 { 0x02f0,0x0300,0x0340 }, | |
233 { 0x02f0,0x02f0,0x0330 }, | |
234 { 0x02f0,0x02f0,0x0320 }, | |
235 { 0x02f0,0x02f0,0x0310 }, | |
236 { 0x0300,0x02f0,0x0300 }, | |
237 { 0x0310,0x0300,0x02f0 }, | |
238 { 0x0340,0x0320,0x02f0 }, | |
239 { 0x0390,0x0350,0x02f0 }, | |
240 { 0x03e0,0x0390,0x0300 }, | |
241 { 0x0420,0x03e0,0x0310 }, | |
242 { 0x0460,0x0420,0x0330 }, | |
243 { 0x0490,0x0450,0x0350 }, | |
244 { 0x04a0,0x04a0,0x03c0 }, | |
245 { 0x0460,0x0490,0x0410 }, | |
246 { 0x0440,0x0460,0x0470 }, | |
247 { 0x0440,0x0440,0x04a0 }, | |
248 { 0x0520,0x0480,0x0460 }, | |
249 { 0x0800,0x0630,0x0440 }, | |
250 { 0x0840,0x0840,0x0450 }, | |
251 { 0x0840,0x0840,0x04e0 }, | |
252 }; | |
253 | |
6002 | 254 const uint8_t ff_ac3_bap_tab[64]= { |
2967 | 255 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, |
256 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, | |
257 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, | |
258 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, | |
259 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, | |
260 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, | |
0 | 261 15, 15, 15, 15, |
262 }; | |
263 | |
6002 | 264 const uint8_t ff_ac3_slow_decay_tab[4]={ |
0 | 265 0x0f, 0x11, 0x13, 0x15, |
266 }; | |
267 | |
6002 | 268 const uint8_t ff_ac3_fast_decay_tab[4]={ |
2967 | 269 0x3f, 0x53, 0x67, 0x7b, |
0 | 270 }; |
271 | |
6002 | 272 const uint16_t ff_ac3_slow_gain_tab[4]= { |
0 | 273 0x540, 0x4d8, 0x478, 0x410, |
274 }; | |
275 | |
6002 | 276 const uint16_t ff_ac3_db_per_bit_tab[4]= { |
0 | 277 0x000, 0x700, 0x900, 0xb00, |
278 }; | |
279 | |
6002 | 280 const int16_t ff_ac3_floor_tab[8]= { |
0 | 281 0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800, |
282 }; | |
283 | |
6002 | 284 const uint16_t ff_ac3_fast_gain_tab[8]= { |
0 | 285 0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400, |
286 }; | |
287 | |
6002 | 288 const uint8_t ff_ac3_critical_band_size_tab[50]={ |
2967 | 289 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
290 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, | |
291 3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24 | |
0 | 292 }; |
6671
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
293 /** |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
294 * Default channel map for a dependent substream defined by acmod |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
295 */ |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
296 const uint16_t ff_eac3_default_chmap[8] = { |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
297 AC3_CHMAP_L | AC3_CHMAP_R, // FIXME Ch1+Ch2 |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
298 AC3_CHMAP_C, |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
299 AC3_CHMAP_L | AC3_CHMAP_R, |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
300 AC3_CHMAP_L | AC3_CHMAP_C | AC3_CHMAP_R, |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
301 AC3_CHMAP_L | AC3_CHMAP_R | AC3_CHMAP_C_SUR, |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
302 AC3_CHMAP_L | AC3_CHMAP_C | AC3_CHMAP_R | AC3_CHMAP_C_SUR, |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
303 AC3_CHMAP_L | AC3_CHMAP_R | AC3_CHMAP_L_SUR | AC3_CHMAP_R_SUR, |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
304 AC3_CHMAP_L | AC3_CHMAP_C | AC3_CHMAP_R | AC3_CHMAP_L_SUR | AC3_CHMAP_R_SUR |
2d0b86dfe5bb
add a ff_ac3_parse_header_full() which calls ff_ac3_parse_header()
bwolowiec
parents:
6002
diff
changeset
|
305 }; |