FFmpeg
aacdec_tab.c
Go to the documentation of this file.
1 /*
2  * Common code and tables of the AAC fixed- and floating-point decoders
3  * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4  * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 /**
24  * @file
25  * Common code and tables of the AAC fixed- and floating-point decoders
26  */
27 
28 #include "aacdec_tab.h"
29 
30 #include "libavcodec/aac.h"
31 #include "libavcodec/aacps.h"
32 #include "libavcodec/aactab.h"
33 #include "libavcodec/vlc.h"
34 
35 #include "libavutil/attributes.h"
36 #include "libavutil/thread.h"
37 
38 const int8_t ff_tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 5, 5, 16, 5, 0 };
39 
40 const uint8_t ff_aac_channel_layout_map[16][16][3] = {
41  { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, },
42  { { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, },
48  { { 0, } },
49  { { 0, } },
50  { { 0, } },
53  {
54  { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, // SCE1 = FC,
55  { TYPE_CPE, 0, AAC_CHANNEL_FRONT }, // CPE1 = FLc and FRc,
56  { TYPE_CPE, 1, AAC_CHANNEL_FRONT }, // CPE2 = FL and FR,
57  { TYPE_CPE, 2, AAC_CHANNEL_BACK }, // CPE3 = SiL and SiR,
58  { TYPE_CPE, 3, AAC_CHANNEL_BACK }, // CPE4 = BL and BR,
59  { TYPE_SCE, 1, AAC_CHANNEL_BACK }, // SCE2 = BC,
60  { TYPE_LFE, 0, AAC_CHANNEL_LFE }, // LFE1 = LFE1,
61  { TYPE_LFE, 1, AAC_CHANNEL_LFE }, // LFE2 = LFE2,
62  { TYPE_SCE, 2, AAC_CHANNEL_FRONT }, // SCE3 = TpFC,
63  { TYPE_CPE, 4, AAC_CHANNEL_FRONT }, // CPE5 = TpFL and TpFR,
64  { TYPE_CPE, 5, AAC_CHANNEL_SIDE }, // CPE6 = TpSiL and TpSiR,
65  { TYPE_SCE, 3, AAC_CHANNEL_SIDE }, // SCE4 = TpC,
66  { TYPE_CPE, 6, AAC_CHANNEL_BACK }, // CPE7 = TpBL and TpBR,
67  { TYPE_SCE, 4, AAC_CHANNEL_BACK }, // SCE5 = TpBC,
68  { TYPE_SCE, 5, AAC_CHANNEL_FRONT }, // SCE6 = BtFC,
69  { TYPE_CPE, 7, AAC_CHANNEL_FRONT }, // CPE8 = BtFL and BtFR
70  },
72  { { 0, } },
73 };
74 
75 const int16_t ff_aac_channel_map[3][4][6] = {
76  {
81  },
82  {
87  },
88  {
93  },
94 };
95 
108  { 0 },
109 };
110 
113 
114 /// Huffman tables for SBR
115 
116 static const uint8_t sbr_huffman_tab[][2] = {
117  /* t_huffman_env_1_5dB - 121 entries */
118  { 60, 2 }, { 59, 2 }, { 61, 3 }, { 58, 3 }, { 62, 4 },
119  { 57, 4 }, { 63, 5 }, { 56, 5 }, { 64, 6 }, { 55, 6 },
120  { 65, 7 }, { 54, 7 }, { 66, 8 }, { 53, 8 }, { 67, 9 },
121  { 52, 9 }, { 51, 10 }, { 68, 10 }, { 50, 11 }, { 69, 12 },
122  { 49, 12 }, { 70, 13 }, { 48, 13 }, { 47, 13 }, { 71, 14 },
123  { 46, 14 }, { 72, 14 }, { 45, 14 }, { 44, 15 }, { 73, 15 },
124  { 41, 16 }, { 42, 16 }, { 43, 16 }, { 74, 16 }, { 36, 16 },
125  { 40, 16 }, { 76, 16 }, { 34, 17 }, { 39, 17 }, { 75, 17 },
126  { 37, 17 }, { 35, 18 }, { 38, 18 }, { 0, 18 }, { 1, 18 },
127  { 2, 18 }, { 3, 18 }, { 4, 18 }, { 5, 18 }, { 6, 19 },
128  { 7, 19 }, { 8, 19 }, { 9, 19 }, { 10, 19 }, { 11, 19 },
129  { 12, 19 }, { 13, 19 }, { 14, 19 }, { 15, 19 }, { 16, 19 },
130  { 17, 19 }, { 18, 19 }, { 19, 19 }, { 20, 19 }, { 21, 19 },
131  { 22, 19 }, { 23, 19 }, { 24, 19 }, { 25, 19 }, { 26, 19 },
132  { 27, 19 }, { 28, 19 }, { 29, 19 }, { 30, 19 }, { 31, 19 },
133  { 32, 19 }, { 33, 19 }, { 77, 19 }, { 78, 19 }, { 79, 19 },
134  { 80, 19 }, { 81, 19 }, { 82, 19 }, { 83, 19 }, { 84, 19 },
135  { 85, 19 }, { 86, 19 }, { 87, 19 }, { 88, 19 }, { 89, 19 },
136  { 90, 19 }, { 91, 19 }, { 92, 19 }, { 93, 19 }, { 94, 19 },
137  { 95, 19 }, { 96, 19 }, { 97, 19 }, { 98, 19 }, { 99, 19 },
138  { 100, 19 }, { 101, 19 }, { 102, 19 }, { 103, 19 }, { 104, 19 },
139  { 105, 19 }, { 106, 19 }, { 107, 19 }, { 108, 19 }, { 109, 19 },
140  { 110, 19 }, { 111, 19 }, { 112, 19 }, { 113, 19 }, { 114, 19 },
141  { 115, 19 }, { 116, 19 }, { 117, 19 }, { 118, 19 }, { 119, 19 },
142  { 120, 19 },
143  /* f_huffman_env_1_5dB - 121 entries */
144  { 60, 2 }, { 59, 2 }, { 61, 3 }, { 58, 3 }, { 57, 4 },
145  { 62, 4 }, { 56, 5 }, { 63, 5 }, { 55, 6 }, { 64, 6 },
146  { 54, 7 }, { 65, 8 }, { 53, 8 }, { 66, 8 }, { 52, 9 },
147  { 67, 9 }, { 51, 9 }, { 68, 10 }, { 50, 10 }, { 69, 11 },
148  { 49, 11 }, { 70, 11 }, { 71, 11 }, { 48, 12 }, { 72, 12 },
149  { 47, 12 }, { 73, 12 }, { 74, 13 }, { 46, 13 }, { 45, 13 },
150  { 75, 13 }, { 76, 14 }, { 77, 14 }, { 44, 14 }, { 43, 15 },
151  { 42, 15 }, { 41, 16 }, { 78, 16 }, { 79, 16 }, { 40, 16 },
152  { 39, 16 }, { 80, 17 }, { 81, 17 }, { 36, 17 }, { 37, 17 },
153  { 38, 17 }, { 34, 17 }, { 32, 18 }, { 82, 18 }, { 83, 18 },
154  { 85, 18 }, { 19, 18 }, { 35, 18 }, { 86, 18 }, { 87, 18 },
155  { 30, 18 }, { 33, 18 }, { 84, 18 }, { 88, 18 }, { 104, 18 },
156  { 9, 19 }, { 14, 19 }, { 16, 19 }, { 17, 19 }, { 23, 19 },
157  { 27, 19 }, { 29, 19 }, { 31, 19 }, { 90, 19 }, { 97, 19 },
158  { 102, 19 }, { 107, 19 }, { 108, 19 }, { 0, 19 }, { 1, 19 },
159  { 2, 20 }, { 3, 20 }, { 4, 20 }, { 5, 20 }, { 6, 20 },
160  { 7, 20 }, { 8, 20 }, { 10, 20 }, { 11, 20 }, { 12, 20 },
161  { 13, 20 }, { 15, 20 }, { 18, 20 }, { 20, 20 }, { 21, 20 },
162  { 22, 20 }, { 24, 20 }, { 25, 20 }, { 26, 20 }, { 28, 20 },
163  { 89, 20 }, { 91, 20 }, { 92, 20 }, { 93, 20 }, { 94, 20 },
164  { 95, 20 }, { 96, 20 }, { 98, 20 }, { 99, 20 }, { 100, 20 },
165  { 101, 20 }, { 103, 20 }, { 105, 20 }, { 106, 20 }, { 109, 20 },
166  { 110, 20 }, { 111, 20 }, { 112, 20 }, { 113, 20 }, { 114, 20 },
167  { 115, 20 }, { 116, 20 }, { 117, 20 }, { 118, 20 }, { 119, 20 },
168  { 120, 20 },
169  /* t_huffman_env_bal_1_5dB - 49 entries */
170  { 24, 1 }, { 25, 2 }, { 23, 3 }, { 26, 4 }, { 22, 5 },
171  { 27, 6 }, { 21, 7 }, { 28, 8 }, { 20, 9 }, { 19, 11 },
172  { 29, 11 }, { 18, 12 }, { 30, 12 }, { 31, 15 }, { 17, 16 },
173  { 32, 16 }, { 0, 16 }, { 1, 16 }, { 2, 16 }, { 3, 16 },
174  { 4, 16 }, { 5, 16 }, { 6, 16 }, { 7, 16 }, { 8, 16 },
175  { 9, 16 }, { 10, 16 }, { 11, 16 }, { 12, 16 }, { 13, 16 },
176  { 14, 16 }, { 15, 16 }, { 16, 16 }, { 33, 16 }, { 34, 16 },
177  { 35, 16 }, { 36, 16 }, { 37, 16 }, { 38, 16 }, { 39, 17 },
178  { 40, 17 }, { 41, 17 }, { 42, 17 }, { 43, 17 }, { 44, 17 },
179  { 45, 17 }, { 46, 17 }, { 47, 17 }, { 48, 17 },
180  /* f_huffman_env_bal_1_5dB - 49 entries */
181  { 24, 1 }, { 23, 2 }, { 25, 3 }, { 22, 4 }, { 26, 5 },
182  { 27, 6 }, { 21, 7 }, { 20, 8 }, { 28, 9 }, { 19, 11 },
183  { 29, 11 }, { 18, 11 }, { 30, 12 }, { 17, 14 }, { 31, 15 },
184  { 32, 16 }, { 15, 16 }, { 16, 17 }, { 0, 18 }, { 1, 18 },
185  { 2, 18 }, { 3, 18 }, { 4, 18 }, { 5, 18 }, { 6, 18 },
186  { 7, 18 }, { 8, 18 }, { 9, 18 }, { 10, 18 }, { 11, 18 },
187  { 12, 18 }, { 13, 18 }, { 14, 18 }, { 33, 18 }, { 34, 18 },
188  { 35, 18 }, { 36, 18 }, { 37, 18 }, { 38, 18 }, { 39, 18 },
189  { 40, 18 }, { 41, 18 }, { 42, 18 }, { 43, 18 }, { 44, 18 },
190  { 45, 18 }, { 46, 18 }, { 47, 19 }, { 48, 19 },
191  /* t_huffman_env_3_0dB - 63 entries */
192  { 31, 1 }, { 30, 2 }, { 32, 3 }, { 29, 4 }, { 33, 5 },
193  { 28, 6 }, { 34, 7 }, { 27, 8 }, { 35, 9 }, { 26, 11 },
194  { 36, 11 }, { 25, 12 }, { 24, 13 }, { 37, 13 }, { 23, 14 },
195  { 38, 14 }, { 22, 14 }, { 21, 14 }, { 39, 14 }, { 40, 15 },
196  { 41, 16 }, { 18, 16 }, { 20, 16 }, { 19, 16 }, { 17, 17 },
197  { 42, 17 }, { 43, 18 }, { 0, 18 }, { 1, 18 }, { 2, 19 },
198  { 3, 19 }, { 4, 19 }, { 5, 19 }, { 6, 19 }, { 7, 19 },
199  { 8, 19 }, { 9, 19 }, { 10, 19 }, { 11, 19 }, { 12, 19 },
200  { 13, 19 }, { 14, 19 }, { 15, 19 }, { 16, 19 }, { 44, 19 },
201  { 45, 19 }, { 46, 19 }, { 47, 19 }, { 48, 19 }, { 49, 19 },
202  { 50, 19 }, { 51, 19 }, { 52, 19 }, { 53, 19 }, { 54, 19 },
203  { 55, 19 }, { 56, 19 }, { 57, 19 }, { 58, 19 }, { 59, 19 },
204  { 60, 19 }, { 61, 19 }, { 62, 19 },
205  /* f_huffman_env_3_0dB - 63 entries */
206  { 31, 1 }, { 30, 2 }, { 32, 3 }, { 29, 4 }, { 33, 5 },
207  { 28, 6 }, { 34, 8 }, { 27, 8 }, { 35, 9 }, { 26, 9 },
208  { 36, 10 }, { 25, 10 }, { 37, 11 }, { 24, 11 }, { 38, 12 },
209  { 23, 12 }, { 39, 13 }, { 40, 14 }, { 22, 14 }, { 21, 15 },
210  { 41, 15 }, { 42, 15 }, { 20, 16 }, { 19, 16 }, { 43, 16 },
211  { 44, 16 }, { 18, 17 }, { 16, 17 }, { 45, 17 }, { 46, 17 },
212  { 17, 18 }, { 49, 18 }, { 13, 18 }, { 7, 18 }, { 12, 18 },
213  { 47, 18 }, { 48, 18 }, { 9, 19 }, { 10, 19 }, { 15, 19 },
214  { 51, 19 }, { 52, 19 }, { 53, 19 }, { 56, 19 }, { 8, 19 },
215  { 11, 19 }, { 55, 19 }, { 0, 20 }, { 1, 20 }, { 2, 20 },
216  { 3, 20 }, { 4, 20 }, { 5, 20 }, { 6, 20 }, { 14, 20 },
217  { 50, 20 }, { 54, 20 }, { 57, 20 }, { 58, 20 }, { 59, 20 },
218  { 60, 20 }, { 61, 20 }, { 62, 20 },
219  /* t_huffman_env_bal_3_0dB - 25 entries */
220  { 12, 1 }, { 13, 2 }, { 11, 3 }, { 10, 4 }, { 14, 5 },
221  { 15, 6 }, { 9, 7 }, { 8, 8 }, { 16, 9 }, { 7, 12 },
222  { 0, 13 }, { 1, 13 }, { 2, 13 }, { 3, 13 }, { 4, 13 },
223  { 5, 13 }, { 6, 13 }, { 17, 13 }, { 18, 13 }, { 19, 13 },
224  { 20, 13 }, { 21, 13 }, { 22, 13 }, { 23, 14 }, { 24, 14 },
225  /* f_huffman_env_bal_3_0dB - 25 entries */
226  { 12, 1 }, { 11, 2 }, { 13, 3 }, { 10, 4 }, { 14, 5 },
227  { 15, 6 }, { 9, 7 }, { 8, 8 }, { 16, 9 }, { 7, 11 },
228  { 17, 12 }, { 18, 13 }, { 0, 13 }, { 1, 13 }, { 2, 13 },
229  { 3, 13 }, { 4, 13 }, { 5, 14 }, { 6, 14 }, { 19, 14 },
230  { 20, 14 }, { 21, 14 }, { 22, 14 }, { 23, 14 }, { 24, 14 },
231  /* t_huffman_noise_3_0dB - 63 entries */
232  { 31, 1 }, { 32, 2 }, { 30, 3 }, { 29, 4 }, { 33, 5 },
233  { 28, 6 }, { 34, 8 }, { 27, 8 }, { 35, 10 }, { 26, 11 },
234  { 36, 13 }, { 42, 13 }, { 0, 13 }, { 1, 13 }, { 2, 13 },
235  { 3, 13 }, { 4, 13 }, { 5, 13 }, { 6, 13 }, { 7, 13 },
236  { 8, 13 }, { 9, 13 }, { 10, 13 }, { 11, 13 }, { 12, 13 },
237  { 13, 13 }, { 14, 13 }, { 15, 13 }, { 16, 13 }, { 17, 13 },
238  { 18, 13 }, { 19, 13 }, { 20, 13 }, { 21, 13 }, { 22, 13 },
239  { 23, 13 }, { 24, 13 }, { 25, 13 }, { 37, 13 }, { 38, 13 },
240  { 39, 13 }, { 40, 13 }, { 41, 13 }, { 43, 13 }, { 44, 13 },
241  { 45, 13 }, { 46, 13 }, { 47, 13 }, { 48, 13 }, { 49, 13 },
242  { 50, 13 }, { 51, 13 }, { 52, 13 }, { 53, 13 }, { 54, 13 },
243  { 55, 13 }, { 56, 13 }, { 57, 13 }, { 58, 13 }, { 59, 13 },
244  { 60, 13 }, { 61, 14 }, { 62, 14 },
245  /* t_huffman_noise_bal_3_0dB - 25 entries */
246  { 12, 1 }, { 11, 2 }, { 13, 3 }, { 10, 5 }, { 14, 6 },
247  { 0, 8 }, { 1, 8 }, { 2, 8 }, { 3, 8 }, { 4, 8 },
248  { 5, 8 }, { 6, 8 }, { 7, 8 }, { 8, 8 }, { 9, 8 },
249  { 15, 8 }, { 16, 8 }, { 17, 8 }, { 18, 8 }, { 19, 8 },
250  { 20, 8 }, { 21, 8 }, { 22, 8 }, { 23, 8 }, { 24, 8 },
251 };
252 
253 static const uint8_t sbr_huffman_nb_codes[] = {
254  121, 121, 49, 49, 63, 63, 25, 25, 63, 25
255 };
256 
257 static const int8_t sbr_vlc_offsets[10] = {
258  -60, -60, -24, -24, -31, -31, -12, -12, -31, -12
259 };
260 
261 
263 
264 static av_cold void init_sbr_tables(void)
265 {
266  static VLCElem vlc_buf[(1098 + 1092 + 768 + 1026 + 1058 +
267  1052 + 544 + 544 + 592 + 512)];
268  VLCInitState state = VLC_INIT_STATE(vlc_buf);
269  const uint8_t (*tab)[2] = sbr_huffman_tab;
270 
271  // SBR VLC table initialization
272  for (int i = 0; i < FF_ARRAY_ELEMS(ff_aac_sbr_vlc); i++) {
273  ff_aac_sbr_vlc[i] =
275  &tab[0][1], 2,
276  &tab[0][0], 2, 1,
277  sbr_vlc_offsets[i], 0);
279  }
280 }
281 
282 const int16_t ff_aac_hcod_firstband_CLD[30][2] = {
283  { 2, 1 }, { 4, 3 }, { 6, 5 }, { 8, 7 }, { 10, 9 },
284  { 12, 11 }, { 14, 13 }, { -8, 15 }, { -9, 16 }, { -10, 17 },
285  { -18, 18 }, { -17, -19 }, { -16, 19 }, { -11, -20 }, { -15, -21 },
286  { -7, 20 }, { -22, 21 }, { -12, -14 }, { -13, -23 }, { 23, 22 },
287  { -24, -31 }, { -6, 24 }, { -25, -26 }, { 26, 25 }, { -5, -27 },
288  { -28, 27 }, { -4, 28 }, { -29, 29 }, { -1, -30 }, { -2, -3 },
289 };
290 
291 const int16_t ff_aac_hcod1D_CLD[2 /* DT/DF */][30][2] = {
292  { { -1, 1 }, { -2, 2 }, { -3, 3 }, { -4, 4 }, { -5, 5 },
293  { -6, 6 }, { -7, 7 }, { 9, 8 }, { -8, 10 }, { -9, 11 },
294  { -10, 12 }, { -11, 13 }, { -12, 14 }, { -13, 15 }, { -14, 16 },
295  { -15, 17 }, { -16, 18 }, { -17, 19 }, { -18, 20 }, { -19, -20 },
296  { -21, 21 }, { -22, 22 }, { -23, 23 }, { 25, 24 }, { -24, 26 },
297  { -25, 27 }, { 29, 28 }, { -26, -31 }, { -29, -30 }, { -27, -28 }, },
298  { { -1, 1 }, { -2, 2 }, { -3, 3 }, { -4, 4 }, { -5, 5 },
299  { -6, 6 }, { -7, 7 }, { -8, 8 }, { -9, 9 }, { -10, 10 },
300  { -11, 11 }, { -12, 12 }, { -13, 13 }, { 15, 14 }, { -14, 16 },
301  { -15, 17 }, { -16, 18 }, { -17, 19 }, { -18, 20 }, { -19, 21 },
302  { -20, -21 }, { -23, 22 }, { -22, 23 }, { -24, 24 }, { -25, 25 },
303  { 27, 26 }, { 29, 28 }, { -30, -31 }, { -28, -29 }, { -26, -27 }, },
304 };
305 
306 const int16_t ff_aac_hcod2D_CLD_03[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][15][2] = {
307  { { { -1, 1 }, { -52, 2 }, { 4, 3 }, { -2, 5 }, { -17, 6 },
308  { -18, 7 }, { -36, -51 }, { 9, 8 }, { -35, 10 }, { -34, 11 },
309  { -19, -33 }, { -3, 12 }, { -20, 13 }, { -50, 14 }, { -4, -49 }, },
310  { { -1, 1 }, { -52, 2 }, { -17, 3 }, { 5, 4 }, { -36, 6 },
311  { -33, 7 }, { -2, -18 }, { -20, 8 }, { 10, 9 }, { -34, -49 },
312  { -51, 11 }, { -35, 12 }, { -19, 13 }, { -3, 14 }, { -4, -50 }, }, },
313  { { { -1, 1 }, { -52, 2 }, { -17, 3 }, { 5, 4 }, { -2, -36 },
314  { -18, 6 }, { 8, 7 }, { -51, 9 }, { -33, 10 }, { -34, 11 },
315  { -20, -35 }, { -19, 12 }, { -3, 13 }, { -49, 14 }, { -4, -50 }, },
316  { { 2, 1 }, { -1, -52 }, { 4, 3 }, { -2, 5 }, { -51, 6 },
317  { -17, -18 }, { 8, 7 }, { 10, 9 }, { -3, -36 }, { -19, 11 },
318  { -35, -50 }, { -34, 12 }, { -4, 13 }, { -33, 14 }, { -20, -49 }, }, },
319 };
320 
321 const int16_t ff_aac_hcod2D_CLD_05[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][35][2] = {
322  { { { 2, 1 }, { -86, 3 }, { 5, 4 }, { -1, 6 }, { 8, 7 },
323  { -17, -18 }, { -2, 9 }, { -70, 10 }, { -85, 11 }, { 13, 12 },
324  { -69, 14 }, { -34, 15 }, { 17, 16 }, { -19, 18 }, { -33, -35 },
325  { -54, 19 }, { -53, 20 }, { -3, 21 }, { -68, 22 }, { -84, 23 },
326  { -50, 24 }, { -52, 25 }, { -51, 26 }, { -20, -36 }, { -49, 27 },
327  { -38, 28 }, { -37, 29 }, { -4, -83 }, { -67, 30 }, { -66, 31 },
328  { -21, 32 }, { -22, -65 }, { -5, 33 }, { -82, 34 }, { -6, -81 }, },
329  { { 2, 1 }, { 4, 3 }, { -86, 5 }, { -1, 6 }, { -17, 7 },
330  { -70, 8 }, { 10, 9 }, { -18, 11 }, { -33, 12 }, { -54, 13 },
331  { -2, 14 }, { -34, 15 }, { -38, 16 }, { -49, 17 }, { -85, 18 },
332  { -50, 19 }, { -69, 20 }, { -53, -65 }, { -22, 21 }, { -66, 22 },
333  { -19, 23 }, { -37, 24 }, { -35, -81 }, { -3, 25 }, { -51, 26 },
334  { -68, -84 }, { -52, 27 }, { 29, 28 }, { -20, 30 }, { -4, -36 },
335  { -83, 31 }, { -67, 32 }, { -21, 33 }, { -5, 34 }, { -6, -82 }, }, },
336  { { { 2, 1 }, { -86, 3 }, { -1, 4 }, { -17, 5 }, { 7, 6 },
337  { -70, 8 }, { -2, -18 }, { 10, 9 }, { 12, 11 }, { -85, 13 },
338  { -33, 14 }, { -34, -54 }, { 16, 15 }, { -69, 17 }, { 19, 18 },
339  { -50, -53 }, { -19, 20 }, { -38, 21 }, { -35, -49 }, { -3, 22 },
340  { 24, 23 }, { -68, 25 }, { -84, 26 }, { -65, 27 }, { -51, -66 },
341  { -22, -37 }, { -52, 28 }, { -20, 29 }, { -36, 30 }, { -81, 31 },
342  { -4, -83 }, { -67, 32 }, { -21, 33 }, { -5, 34 }, { -6, -82 }, },
343  { { 2, 1 }, { 4, 3 }, { -86, 5 }, { 7, 6 }, { 9, 8 },
344  { -1, -2 }, { -85, 10 }, { -18, 11 }, { -17, 12 }, { 14, 13 },
345  { -70, 15 }, { 17, 16 }, { -19, -69 }, { -84, 18 }, { -3, 19 },
346  { 21, 20 }, { -34, -68 }, { -20, 22 }, { -35, 23 }, { -83, 24 },
347  { -33, 25 }, { -4, 26 }, { -53, 27 }, { -54, -67 }, { -36, 28 },
348  { -21, -52 }, { -82, 29 }, { -5, -50 }, { -51, 30 }, { -38, 31 },
349  { -37, -49 }, { -6, 32 }, { -66, 33 }, { -65, 34 }, { -22, -81 }, }, },
350 };
351 
352 const int16_t ff_aac_hcod2D_CLD_07[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][63][2] = {
353  { { { 2, 1 }, { 4, 3 }, {-120, 5 }, { 7, 6 }, { 9, 8 },
354  { -1, 10 }, { -18, 11 }, { -17, 12 }, { -2,-104 }, {-119, 13 },
355  { 15, 14 }, {-103, 16 }, { 18, 17 }, { -34, 19 }, { -19, 20 },
356  { 22, 21 }, { -35, 23 }, { -33, 24 }, { -88, 25 }, { -87, 26 },
357  { 28, 27 }, { -3,-102 }, { -86, 29 }, { -52,-118 }, { 31, 30 },
358  { -50, 32 }, { -51, 33 }, { -70, 34 }, { -36, 35 }, { -85, 36 },
359  { -20, 37 }, { 39, 38 }, { -69, -71 }, { -72, 40 }, { -49, -67 },
360  { 42, 41 }, { -68, 43 }, { -4,-101 }, { -53,-117 }, { -37, 44 },
361  { -66, 45 }, { -55, 46 }, { 48, 47 }, { -54, 49 }, { -21, 50 },
362  { -84,-100 }, { -56, -65 }, { 52, 51 }, { -82, -83 }, { 54, 53 },
363  { -5,-116 }, { -22, 55 }, { -38, 56 }, { -39, -40 }, { 58, 57 },
364  { -81,-115 }, { -98, -99 }, { -6, 59 }, { -23, 60 }, { -24, 61 },
365  { -7, -97 }, {-114, 62 }, { -8,-113 }, },
366  { { 2, 1 }, { 4, 3 }, { 6, 5 }, {-120, 7 }, { -17, 8 },
367  { -1,-104 }, { 10, 9 }, { 12, 11 }, { -18, 13 }, { -33, -88 },
368  { 15, 14 }, { 17, 16 }, { -2, 18 }, { -34, 19 }, { -72, 20 },
369  { -49, 21 }, {-119, 22 }, { -50, 23 }, {-103, 24 }, { -56, 25 },
370  { -65, 26 }, { 28, 27 }, { -40, -87 }, { -66, 29 }, { -82, 30 },
371  { 32, 31 }, { -19, -81 }, { -71, 33 }, { -97, 34 }, { -35, -55 },
372  { -24, 35 }, { 37, 36 }, { -3, -98 }, { -51, 38 }, { -67, 39 },
373  { -39,-118 }, {-113, 40 }, {-102, 41 }, { -86, 42 }, { -70, -83 },
374  { 44, 43 }, { -20, -54 }, { -52, 45 }, { -36, 46 }, { -4, 47 },
375  { -68, 48 }, { -85, 49 }, {-101,-117 }, { -69, 50 }, { 52, 51 },
376  { -21, -37 }, { -53, 53 }, { 55, 54 }, { -5,-100 }, {-116, 56 },
377  { -84, 57 }, { -38, 58 }, { -22, -99 }, {-115, 59 }, { -6, 60 },
378  { -23, 61 }, { -7, 62 }, {-114, 0 }, }, },
379  { { { 2, 1 }, {-120, 3 }, { -1, 4 }, { 6, 5 }, { -17, 7 },
380  {-104, 8 }, { -18, 9 }, { -2, 10 }, { 12, 11 }, { 14, 13 },
381  {-119, 15 }, { -33, 16 }, { -34, -88 }, {-103, 17 }, { 19, 18 },
382  { 21, 20 }, { 23, 22 }, { 25, 24 }, { -19, -72 }, { -50, 26 },
383  { -49, 27 }, { -87, 28 }, { 30, 29 }, { 32, 31 }, { -3, -35 },
384  { 34, 33 }, { -56, 35 }, { -65, -66 }, { -40, 36 }, { -82,-118 },
385  { -71, 37 }, { -55, 38 }, { -67,-102 }, { -51, 39 }, { -70, 40 },
386  { 42, 41 }, { -81, 43 }, { -86, 44 }, { -52, -97 }, { -98, 45 },
387  { -24, -39 }, { -20, 46 }, { -54, -83 }, { -36, 47 }, { -85, 48 },
388  { -68, 49 }, { -4, 50 }, { -69,-113 }, {-117, 51 }, { -37,-101 },
389  { -53, 52 }, { -21, 53 }, { 55, 54 }, { -84,-100 }, { -5, 56 },
390  {-116, 57 }, { -22, 58 }, { -38,-115 }, { 60, 59 }, { -6, -99 },
391  { -23, 61 }, {-114, 62 }, { -7, -8 }, },
392  { { 2, 1 }, { 4, 3 }, {-120, 5 }, { 7, 6 }, { 9, 8 },
393  { 11, 10 }, { -1, 12 }, { -18,-119 }, { -2, 13 }, { 15, 14 },
394  { -17, 16 }, {-104, 17 }, { 19, 18 }, { -19, 20 }, {-103, 21 },
395  {-118, 22 }, { 24, 23 }, { -3, 25 }, { 27, 26 }, { -34, 28 },
396  {-102, 29 }, { -20, 30 }, { -35, 31 }, { 33, 32 }, {-117, 34 },
397  { -33, 35 }, { -88, 36 }, { -4, 37 }, { -87, 38 }, { 40, 39 },
398  { -36,-101 }, { -86, 41 }, { -21, -37 }, { -85,-100 }, { -52, 42 },
399  { -22, 43 }, {-116, 44 }, { -50 , 45 }, { 47, 46 }, { -5, -51 },
400  {-115, 48 }, { -70, 49 }, { -84, 50 }, { -38, -49 }, { -72, -99 },
401  { -53, 51 }, { -69, -71 }, { -23, 52 }, { -6, -67 }, {-114, 53 },
402  { -7, 54 }, { -66, -68 }, { -55, 55 }, { 57, 56 }, { -54, -65 },
403  { -8, -56 }, { -82, -83 }, { 59, 58 }, { -39, -40 }, { -81, 60 },
404  { -98, 61 }, { -97, 62 }, { -24,-113 }, }, },
405 };
406 
407 const int16_t ff_aac_hcod2D_CLD_09[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][99][2] = {
408  { { { 2, 1 }, { 4, 3 }, {-154, 5 }, { 7, 6 }, { 9, 8 },
409  { 11, 10 }, { -1, 12 }, { -18, 13 }, { -17, 14 }, { -2,-138 },
410  { 16, 15 }, {-153, 17 }, {-137, 18 }, { 20, 19 }, { 22, 21 },
411  { -34, 23 }, { -19, 24 }, { -35, 25 }, { 27, 26 }, { 29, 28 },
412  {-121, 30 }, {-120, 31 }, {-136, 32 }, { -33,-122 }, { 34, 33 },
413  {-152, 35 }, { -3, 36 }, { -51, 37 }, { -52, 38 }, { -69, 39 },
414  { -36, 40 }, { -50, 41 }, { 43, 42 }, { -20, 44 }, {-104, 45 },
415  {-103, 46 }, { -87, 47 }, {-119, 48 }, {-105, 49 }, { -86, 50 },
416  {-102, 51 }, {-106, 52 }, { -49,-135 }, { -68, 53 }, { 55, 54 },
417  { -53, 56 }, { -67,-151 }, { -4, 57 }, { -84, 58 }, { -85, 59 },
418  { -66, 60 }, { -37, 61 }, { -70, 62 }, { -54, -88 }, { -21, 63 },
419  { 65, 64 }, { -89, 66 }, {-118, 67 }, { -72, 68 }, { -90, 69 },
420  { -71, 70 }, { -65,-134 }, {-150, 71 }, { -83, 72 }, { -5, 73 },
421  {-101,-117 }, { -82, 74 }, { 76, 75 }, { -99, 77 }, { -38, 78 },
422  {-100, 79 }, { -22, 80 }, { -73, 81 }, { -39, -74 }, { 83, 82 },
423  { -55, -81 }, { -57, 84 }, {-133,-149 }, { -56, 85 }, { -6, 86 },
424  { -98, 87 }, {-132, 88 }, { -23, 89 }, {-114, 90 }, {-116, 91 },
425  { -58,-115 }, { -24, 92 }, { -97,-148 }, { -40, -41 }, { -7, -42 },
426  {-147, 93 }, { 95, 94 }, {-131, 96 }, { -8,-130 }, { -25,-113 },
427  { -9, 97 }, { -26,-129 }, {-146, 98 }, { -10,-145 }, },
428  { { 2, 1 }, { 4, 3 }, { 6, 5 }, {-154, 7 }, { 9, 8 },
429  { -17, 10 }, {-138, 11 }, { -1, 12 }, { 14, 13 }, { 16, 15 },
430  { -33,-122 }, { -18, 17 }, { 19, 18 }, { -34, 20 }, { -2, 21 },
431  {-106, 22 }, { -49, 23 }, { 25, 24 }, { -50, 26 }, {-153, 27 },
432  { -90, 28 }, {-137, 29 }, { -65, 30 }, { 32, 31 }, { -66, 33 },
433  {-121, 34 }, { -74, 35 }, { -81, 36 }, { 38, 37 }, { -42, 39 },
434  { -82, 40 }, {-105, 41 }, { -19,-114 }, { -58, 42 }, { -35, 43 },
435  { -97, 44 }, { 46, 45 }, {-129, 47 }, { -26, -89 }, { -57, -98 },
436  { -51, 48 }, { -3, 49 }, {-113, 50 }, {-130, 51 }, {-152, 52 },
437  { -67, -73 }, { -99,-136 }, {-145, 53 }, {-120, 54 }, { -41, 55 },
438  { -83, 56 }, { -72, 57 }, {-104, 58 }, {-115, 59 }, { -20, 60 },
439  { 62, 61 }, { -36, -88 }, { -84, 63 }, { -52, -56 }, { 65, 64 },
440  { -4, -87 }, { -68, 66 }, {-151, 67 }, {-100,-135 }, { 69, 68 },
441  { -69,-119 }, {-103, 70 }, { -71, 71 }, { 73, 72 }, { -21, 74 },
442  { -85, 75 }, { -37, -53 }, { -86, 76 }, { 78, 77 }, {-102,-150 },
443  { -5, 79 }, {-134, 80 }, {-118, 81 }, { -54,-117 }, { 83, 82 },
444  { -38, -70 }, { -22, 84 }, { -6, 85 }, { 87, 86 }, { -55, 88 },
445  {-101, 89 }, {-133,-149 }, { -24, -39 }, { 91, 90 }, {-132, 92 },
446  { -23, 93 }, { -7, 94 }, {-147,-148 }, {-116,-131 }, { -25, 95 },
447  { -40, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
448  { { { 2, 1 }, {-154, 3 }, { 5, 4 }, { -1, 6 }, { 8, 7 },
449  { -17, 9 }, {-138, 10 }, { -18, 11 }, { -2, 12 }, { 14, 13 },
450  { 16, 15 }, {-153, 17 }, { -34, 18 }, { -33,-122 }, { 20, 19 },
451  { 22, 21 }, {-137, 23 }, { 25, 24 }, { 27, 26 }, {-106, 28 },
452  { 30, 29 }, { -50, 31 }, { -19, 32 }, { -49,-121 }, { 34, 33 },
453  { 36, 35 }, { -35, 37 }, { -90, 38 }, { -66, 39 }, { -3, 40 },
454  { 42, 41 }, { -65, 43 }, {-105, 44 }, { 46, 45 }, { -74, 47 },
455  { -51, 48 }, { -82,-152 }, {-136, 49 }, { -81, 50 }, { -42, -89 },
456  {-114, 51 }, { 53, 52 }, { -57, -58 }, {-120, 54 }, { -98, 55 },
457  { -67, 56 }, { -97, 57 }, { 59, 58 }, { -99, 60 }, { -73,-104 },
458  { -72, 61 }, {-113, 62 }, { -20, -83 }, { -84,-130 }, { -36, 63 },
459  { -26, 64 }, { -41, 65 }, { -52,-129 }, { -87, -88 }, { 67, 66 },
460  {-115, 68 }, { -68, 69 }, { -56, -69 }, { -4,-100 }, {-151, 70 },
461  {-135, 71 }, {-103,-119 }, { 73, 72 }, { -71,-145 }, {-102, 74 },
462  { 76, 75 }, { -53, -85 }, { -37, 77 }, { -21, -86 }, { 79, 78 },
463  { -5, 80 }, { -54,-134 }, {-150, 81 }, {-118, 82 }, { -70, 83 },
464  {-117, 84 }, { -22, -38 }, {-101, 85 }, { -55, 86 }, {-149, 87 },
465  { -39, 88 }, {-133, 89 }, { -6, 90 }, {-116, 91 }, { -24, 92 },
466  { -7,-132 }, { -23, 93 }, { -40, 94 }, {-131,-148 }, { -25, 95 },
467  {-147, 96 }, {-146, 97 }, { -8, 0 }, { 0, 0 }, },
468  { { 2, 1 }, { 4, 3 }, { 6, 5 }, {-154, 7 }, { 9, 8 },
469  { 11, 10 }, { 13, 12 }, { 15, 14 }, { -18, 16 }, {-153, 17 },
470  { -1, -2 }, { 19, 18 }, {-138, 20 }, { -17, 21 }, { 23, 22 },
471  { 25, 24 }, { -19,-137 }, { 27, 26 }, {-152, 28 }, { 30, 29 },
472  { -3, -34 }, { 32, 31 }, { 34, 33 }, { 36, 35 }, {-136, 37 },
473  { -35, 38 }, { -20, 39 }, {-122, 40 }, {-151, 41 }, { -33, 42 },
474  {-121, 43 }, { 45, 44 }, { 47, 46 }, { -4, 48 }, { -36,-120 },
475  {-135, 49 }, { 51, 50 }, { -21, 52 }, { 54, 53 }, { 56, 55 },
476  { -50,-150 }, { 58, 57 }, { -51, 59 }, { 61, 60 }, {-119, 62 },
477  { -52, 63 }, { -5, 64 }, { -37, 65 }, {-117,-134 }, { -39, -54 },
478  { -22, 66 }, {-106, 67 }, { -69,-102 }, {-132, 68 }, {-105, 69 },
479  { -49, 70 }, {-149, 71 }, { -24,-104 }, { 73, 72 }, { -53, 74 },
480  { -38,-118 }, {-103, 75 }, { -6, 76 }, { -66, -87 }, {-133,-147 },
481  { -23, 77 }, { -67, 78 }, { -68, -86 }, { -70,-101 }, { -40,-148 },
482  {-116, 79 }, { -55, 80 }, { -84,-131 }, { 82, 81 }, { -89, -90 },
483  { -7, -25 }, { -85, -88 }, { -65, 83 }, { -72,-146 }, { 85, 84 },
484  { -9, -71 }, { -83, 86 }, { -82, 87 }, { -8, 88 }, {-100, 89 },
485  { -74, -99 }, { -73, 90 }, { -10, -81 }, { -56, 91 }, { -57, -98 },
486  { 93, 92 }, { -58,-114 }, { -97,-115 }, { 95, 94 }, { -41, 96 },
487  { -42, 97 }, { -26,-129 }, {-113, 98 }, {-130,-145 }, },
488  },
489 };
490 
491 const int16_t ff_aac_hcod_firstband_ICC[7][2] = {
492  { 2, 1 }, { -5, 3 }, { -4, -6 }, { -3, 4 }, { -2, 5 },
493  { -1, 6 }, { -7, -8 },
494 };
495 
496 const int16_t ff_aac_hcod1D_ICC[7][2] = {
497  { -1, 1 }, { -2, 2 }, { -3, 3 }, { -4, 4 }, { -5, 5 },
498  { -6, 6 }, { -7, -8 },
499 };
500 
501 const int16_t ff_aac_hcod2D_ICC_01[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][3][2] = {
502  { { { -1, 1 }, { -18, 2 }, { -2, -17 }, },
503  { { -1, 1 }, { -18, 2 }, { -2, -17 }, }, },
504  { { { -1, 1 }, { -18, 2 }, { -2, -17 }, },
505  { { -1, 1 }, { -18, 2 }, { -2, -17 }, }, },
506 };
507 
508 const int16_t ff_aac_hcod2D_ICC_03[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][15][2] = {
509  { { { -52, 1 }, { -1, 2 }, { 4, 3 }, { -2, 5 }, { -17, -18 },
510  { -51, 6 }, { -36, 7 }, { 9, 8 }, { -35, 10 }, { -3, 11 },
511  { -19, -34 }, { -33, 12 }, { -50, 13 }, { -20, 14 }, { -4, -49 }, },
512  { { 2, 1 }, { -1, -52 }, { -17, 3 }, { 5, 4 }, { -36, 6 },
513  { -2, 7 }, { -18, -33 }, { 9, 8 }, { -20, 10 }, { -34, -51 },
514  { -49, 11 }, { -35, 12 }, { -19, 13 }, { -3, 14 }, { -4, -50 }, }, },
515  { { { -52, 1 }, { -1, 2 }, { 4, 3 }, { -2, -17 }, { -18, 5 },
516  { -36, 6 }, { -51, 7 }, { 9, 8 }, { -33, 10 }, { -34, 11 },
517  { -35, 12 }, { -19, -20 }, { -3, 13 }, { -49, 14 }, { -4, -50 }, },
518  { { 2, 1 }, { -1, -52 }, { -2, 3 }, { 5, 4 }, { -51, 6 },
519  { -18, 7 }, { -17, 8 }, { -3, 9 }, { -36, 10 }, { -19, -50 },
520  { -35, 11 }, { -4, 12 }, { -34, 13 }, { -33, 14 }, { -20, -49 }, },},
521 };
522 
523 const int16_t ff_aac_hcod2D_ICC_05[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][35][2] = {
524  { { { 2, 1 }, { -86, 3 }, { -1, 4 }, { 6, 5 }, { -18, 7 },
525  { -2, -17 }, { 9, 8 }, { -70, 10 }, { -69, -85 }, { -35, 11 },
526  { 13, 12 }, { -34, 14 }, { -19, 15 }, { -53, 16 }, { -68, 17 },
527  { -33, 18 }, { -3, -52 }, { 20, 19 }, { -54, 21 }, { -84, 22 },
528  { -50, 23 }, { -20, -51 }, { -36, 24 }, { 26, 25 }, { -83, 27 },
529  { -4, -38 }, { -49, 28 }, { -37, 29 }, { -67, 30 }, { -5, 31 },
530  { -21, 32 }, { -65, -66 }, { -82, 33 }, { -22, 34 }, { -6, -81 }, },
531  { { 2, 1 }, { -86, 3 }, { -1, 4 }, { -17, 5 }, { 7, 6 },
532  { -70, 8 }, { -33, 9 }, { -18, 10 }, { -2, 11 }, { -54, 12 },
533  { -49, 13 }, { -38, 14 }, { -34, -65 }, { -85, 15 }, { -50, 16 },
534  { -69, 17 }, { -22, 18 }, { -53, 19 }, { 21, 20 }, { -19, -81 },
535  { -66, 22 }, { -3, -35 }, { 24, 23 }, { -37, 25 }, { -68, -84 },
536  { -51, 26 }, { 28, 27 }, { -20, -52 }, { 30, 29 }, { -4, -36 },
537  { -83, 31 }, { -67, 32 }, { -82, 33 }, { -21, 34 }, { -5, -6 }, }, },
538  { { { -1, 1 }, { -86, 2 }, { 4, 3 }, { -17, 5 }, { -2, 6 },
539  { -18, 7 }, { -70, 8 }, { -85, 9 }, { 11, 10 }, { 13, 12 },
540  { -33, 14 }, { 16, 15 }, { -34, -54 }, { -69, 17 }, { -38, 18 },
541  { -50, 19 }, { -35, -53 }, { -49, 20 }, { -19, 21 }, { -3, 22 },
542  { -65, 23 }, { -68, 24 }, { -22, 25 }, { -81, -84 }, { -66, 26 },
543  { -37, 27 }, { -20, -51 }, { 29, 28 }, { -52, 30 }, { -4, -83 },
544  { -36, 31 }, { -67, 32 }, { -5, 33 }, { -82, 34 }, { -21, 0 }, },
545  { { 2, 1 }, { -86, 3 }, { -1, 4 }, { 6, 5 }, { -2, 7 },
546  { -85, 8 }, { -18, 9 }, { 11, 10 }, { -17, 12 }, { 14, 13 },
547  { -70, 15 }, { -3, -19 }, { -69, 16 }, { -84, 17 }, { -68, 18 },
548  { -20, -35 }, { -34, -83 }, { 20, 19 }, { -4, 21 }, { -33, 22 },
549  { -5, 23 }, { -53, 24 }, { -36, -52 }, { -67, 25 }, { -21, -82 },
550  { -54, 26 }, { -6, 27 }, { -51, 28 }, { -50, 29 }, { -49, 30 },
551  { -37, 31 }, { -38, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
552 };
553 
554 const int16_t ff_aac_hcod2D_ICC_07[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][63][2] = {
555  { { { 2, 1 }, { -1,-120 }, { 4, 3 }, { 6, 5 }, { -18, 7 },
556  { 9, 8 }, { -17, 10 }, { -2, 11 }, {-103, 12 }, { -52, 13 },
557  { -35,-104 }, {-119, 14 }, { 16, 15 }, { -69, -86 }, { 18, 17 },
558  { -34, 19 }, { -19, 20 }, { 22, 21 }, { -70, 23 }, { -87, 24 },
559  {-102, 25 }, { -85, 26 }, { -33, 27 }, { -36, 28 }, { -3, 29 },
560  { -88, 30 }, { -51, 31 }, {-118, 32 }, { 34, 33 }, { -68, 35 },
561  { -53, 36 }, { -67, 37 }, { -20, 38 }, {-101, 39 }, { -50, 40 },
562  { 42, 41 }, { -37, 43 }, {-116, 44 }, {-117, 45 }, { -49, 46 },
563  { -21,-100 }, { 48, 47 }, { -55, -71 }, { -4, 49 }, { -22, -84 },
564  {-115, 50 }, { -66, -82 }, { -72, 51 }, { -5, -6 }, { -54, 52 },
565  { -38, 53 }, { -83, 54 }, { -40, 55 }, { -39, 56 }, { -99, 57 },
566  { -23, -56 }, { -7, 58 }, { -65, -97 }, { -8, 0 }, { 0, 0 },
567  { 0, 0 }, { 0, 0 }, { 0, 0 }, },
568  { { 2, 1 }, { 4, 3 }, { -1,-120 }, { 6, 5 }, { 8, 7 },
569  { -18, 9 }, { -2, 10 }, { 12, 11 }, { 14, 13 }, { -17,-119 },
570  { 16, 15 }, {-103, 17 }, {-104, 18 }, { -52, 19 }, { 21, 20 },
571  { -69, 22 }, { 24, 23 }, { -3, -35 }, { -19, 25 }, { -34, -85 },
572  { 27, 26 }, { -86, 28 }, {-118, 29 }, { -37, 30 }, { 32, 31 },
573  {-102, 33 }, { -20, -22 }, { -4,-117 }, { -87, 34 }, {-100, 35 },
574  { -33, -36 }, { 37, 36 }, { -70, -88 }, {-101, 38 }, { -5, 39 },
575  { -51, -53 }, { -50, 40 }, {-115, 41 }, { -21, 42 }, {-116, 43 },
576  { -38, 44 }, { -23, -84 }, { -49, -99 }, { 46, 45 }, { -6,-114 },
577  { -7, -72 }, { -71, 47 }, { -8, 0 }, { 0, 0 }, { 0, 0 },
578  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
579  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
580  { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
581  { { { -1, 1 }, {-120, 2 }, { 4, 3 }, { -17, 5 }, { -2, 6 },
582  { 8, 7 }, { -18, 9 }, {-104, 10 }, { 12, 11 }, { 14, 13 },
583  { 16, 15 }, {-119, 17 }, { -81, 18 }, { 20, 19 }, { -33, 21 },
584  { -88, 22 }, {-103, 23 }, { -34, 24 }, { -56, 25 }, { -72, 26 },
585  { -49, 27 }, { -82, 28 }, { -50, 29 }, { -65, 30 }, { -55, -87 },
586  { -19, 31 }, { -67, 32 }, { -35, -40 }, { 34, 33 }, { -52, -71 },
587  { -66, 35 }, { -70, 36 }, { 38, 37 }, { -51, -97 }, { -86,-102 },
588  { -3, 39 }, {-118, 40 }, { 42, 41 }, { -24, -85 }, { -54, 43 },
589  { -39, 44 }, { -98,-113 }, { -36, -37 }, { -20, -69 }, { -4, 45 },
590  { -5, 46 }, { -21, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
591  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
592  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
593  { 0, 0 }, { 0, 0 }, { 0, 0 }, },
594  { { 2, 1 }, { 4, 3 }, { -1,-120 }, { 6, 5 }, { 8, 7 },
595  { -18, 9 }, { -2, 10 }, { 12, 11 }, { 14, 13 }, { -17,-119 },
596  { 16, 15 }, {-103, 17 }, {-104, 18 }, { -52, 19 }, { 21, 20 },
597  { -69, 22 }, { 24, 23 }, { -3, -35 }, { -19, 25 }, { -34, -85 },
598  { 27, 26 }, { -86, 28 }, {-118, 29 }, { -37, 30 }, { 32, 31 },
599  {-102, 33 }, { -20, -22 }, { -4,-117 }, { -87, 34 }, {-100, 35 },
600  { -33, -36 }, { 37, 36 }, { -70, -88 }, {-101, 38 }, { -5, 39 },
601  { -51, -53 }, { -50, 40 }, {-115, 41 }, { -21, 42 }, {-116, 43 },
602  { -38, 44 }, { -23, -84 }, { -49, -99 }, { 46, 45 }, { -6,-114 },
603  { -7, -72 }, { -71, 47 }, { -8, 0 }, { 0, 0 }, { 0, 0 },
604  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
605  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
606  { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
607 };
608 
609 const int16_t ff_aac_hcod_firstband_IPD[7][2] = {
610  { -1, 1 }, { -8, 2 }, { -2, 3 }, { 5, 4 }, { -7, 6 },
611  { -3, -5 }, { -4, -6 },
612 };
613 
614 const int16_t ff_aac_hcod1D_IPD[2 /* DT, DF */ ][7][2] = {
615  { { -1, 1 }, { -2, 2 }, { -8, 3 }, { -3, 4 }, { -7, 5 },
616  { -4, 6 }, { -5, -6 }, }, /* DT */
617  { { -1, 1 }, { -8, 2 }, { -2, 3 }, { 5, 4 }, { -3, -7 },
618  { -6, 6 }, { -4, -5 }, }, /* DF */
619 };
620 
621 const int16_t ff_aac_hcod2D_IPD_01[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][3][2] = {
622  { { { -1, 1 }, { -18, 2 }, { -17, 0 }, },
623  { { -1, 1 }, { -18, 2 }, { -17, 0 }, }, },
624  { { { -1, 1 }, { -18, 2 }, { -17, 0 }, },
625  { { -1, 1 }, { -18, 2 }, { -17, 0 }, }, },
626 };
627 
628 const int16_t ff_aac_hcod2D_IPD_03[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][15][2] = {
629  { { { -1, 1 }, { 3, 2 }, { -18, 4 }, { -52, 5 }, { -34, -36 },
630  { -35, 6 }, { -17, 7 }, { -33, 8 }, { -20, 9 }, { -49, 0 },
631  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
632  { { -1, 1 }, { -36, 2 }, { -18, 3 }, { -35, 4 }, { -52, 5 },
633  { 7, 6 }, { -34, 8 }, { -33, -49 }, { -20, 0 }, { 0, 0 },
634  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
635  { { { -1, 1 }, { 3, 2 }, { -18, 4 }, { -52, 5 }, { -34, -36 },
636  { -35, 6 }, { -17, 7 }, { -33, 8 }, { -20, 9 }, { -49, 0 },
637  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
638  { { -1, 1 }, { -36, 2 }, { -18, 3 }, { -35, 4 }, { -52, 5 },
639  { 7, 6 }, { -34, 8 }, { -33, -49 }, { -20, 0 }, { 0, 0 },
640  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
641 };
642 
643 const int16_t ff_aac_hcod2D_IPD_05[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][35][2] = {
644  { { { -1, 1 }, { 3, 2 }, { -52, 4 }, { -86, 5 }, { -35, 6 },
645  { -53, 7 }, { -70, 8 }, { -17, 9 }, { -37, 10 }, { 12, 11 },
646  { -38, -66 }, { -18, 13 }, { -51, 14 }, { 16, 15 }, { -34, -69 },
647  { 18, 17 }, { -54, -65 }, { -50, 19 }, { -33, -49 }, { -22, 0 },
648  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
649  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
650  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
651  { { -1, 1 }, { 3, 2 }, { 5, 4 }, { -86, 6 }, { -66, 7 },
652  { 9, 8 }, { 11, 10 }, { -18, 12 }, { -51, 13 }, { -37, -52 },
653  { -69, 14 }, { -38, 15 }, { -53, 16 }, { -35, 17 }, { -50, -70 },
654  { -22, -49 }, { -33, 18 }, { -17, 19 }, { -34, -65 }, { -81, 20 },
655  { -54, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
656  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
657  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
658  { { { -1, 1 }, { 3, 2 }, { -52, 4 }, { -86, 5 }, { -35, 6 },
659  { -53, 7 }, { -70, 8 }, { -17, 9 }, { -37, 10 }, { 12, 11 },
660  { -38, -66 }, { -18, 13 }, { -51, 14 }, { 16, 15 }, { -34, -69 },
661  { 18, 17 }, { -54, -65 }, { -50, 19 }, { -33, -49 }, { -22, 0 },
662  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
663  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
664  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
665  { { -1, 1 }, { 3, 2 }, { 5, 4 }, { -86, 6 }, { -66, 7 },
666  { 9, 8 }, { 11, 10 }, { -18, 12 }, { -51, 13 }, { -37, -52 },
667  { -69, 14 }, { -38, 15 }, { -53, 16 }, { -35, 17 }, { -50, -70 },
668  { -22, -49 }, { -33, 18 }, { -17, 19 }, { -34, -65 }, { -81, 20 },
669  { -54, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
670  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
671  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
672 };
673 
674 const int16_t ff_aac_hcod2D_IPD_07[2 /* _TP/_FP */ ][2 /* DT_/DF_ */ ][63][2] = {
675  { { { -1, 1 }, { -69, 2 }, { 4, 3 }, {-120, 5 }, { 7, 6 },
676  {-113, 8 }, { -68, 9 }, { 11, 10 }, { -17, 12 }, { -52, 13 },
677  { -24, 14 }, { -18, 15 }, { 17, 16 }, {-104, 18 }, { 20, 19 },
678  { -54, -70 }, { 22, 21 }, { 24, 23 }, { -86, -97 }, {-103, 25 },
679  { -83, 26 }, { -35, 27 }, { -34, -98 }, { -40, 28 }, { -39, -67 },
680  { 30, 29 }, { -33, -51 }, { -87, 31 }, { -88, 32 }, { -82, 33 },
681  { -55, -81 }, { -56, -71 }, { -72, 34 }, { -50, -66 }, { -65, 35 },
682  { -49, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
683  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
684  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
685  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
686  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
687  { 0, 0 }, { 0, 0 }, { 0, 0 }, },
688  { { 2, 1 }, { 4, 3 }, { -1, 5 }, { -69, 6 }, {-120, 7 },
689  { -68, 8 }, { 10, 9 }, { 12, 11 }, { 14, 13 }, { -52, -54 },
690  { -18, 15 }, { -70, 16 }, { -67, 17 }, { 19, 18 }, { -17, 20 },
691  {-113, 21 }, { 23, 22 }, { -83, 24 }, { -24, 25 }, {-103,-104 },
692  { -51, -55 }, { 27, 26 }, { -71, 28 }, { -86, 29 }, { -35, 30 },
693  { -66, 31 }, { -39, -50 }, { -82, -98 }, { -72, 32 }, { -56, -87 },
694  { -34, 33 }, { -33, -88 }, { -40, -97 }, { -65, 34 }, { -49, 35 },
695  { -81, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
696  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
697  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
698  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
699  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
700  { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
701  { { { -1, 1 }, { -69, 2 }, { 4, 3 }, {-120, 5 }, { 7, 6 },
702  {-113, 8 }, { -68, 9 }, { 11, 10 }, { -17, 12 }, { -52, 13 },
703  { -24, 14 }, { -18, 15 }, { 17, 16 }, {-104, 18 }, { 20, 19 },
704  { -54, -70 }, { 22, 21 }, { 24, 23 }, { -86, -97 }, {-103, 25 },
705  { -83, 26 }, { -35, 27 }, { -34, -98 }, { -40, 28 }, { -39, -67 },
706  { 30, 29 }, { -33, -51 }, { -87, 31 }, { -88, 32 }, { -82, 33 },
707  { -55, -81 }, { -56, -71 }, { -72, 34 }, { -50, -66 }, { -65, 35 },
708  { -49, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
709  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
710  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
711  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
712  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
713  { 0, 0 }, { 0, 0 }, { 0, 0 }, },
714  { { 2, 1 }, { 4, 3 }, { -1, 5 }, { -69, 6 }, {-120, 7 },
715  { -68, 8 }, { 10, 9 }, { 12, 11 }, { 14, 13 }, { -52, -54 },
716  { -18, 15 }, { -70, 16 }, { -67, 17 }, { 19, 18 }, { -17, 20 },
717  {-113, 21 }, { 23, 22 }, { -83, 24 }, { -24, 25 }, {-103,-104 },
718  { -51, -55 }, { 27, 26 }, { -71, 28 }, { -86, 29 }, { -35, 30 },
719  { -66, 31 }, { -39, -50 }, { -82, -98 }, { -72, 32 }, { -56, -87 },
720  { -34, 33 }, { -33, -88 }, { -40, -97 }, { -65, 34 }, { -49, 35 },
721  { -81, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
722  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
723  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
724  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
725  { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
726  { 0, 0 }, { 0, 0 }, { 0, 0 }, }, },
727 };
728 
729 const int16_t ff_aac_hcod_lav_idx[3][2] = {
730  { -1, 1 }, { -2, 2 }, { -3, -4 },
731 };
732 
733 const int16_t ff_aac_hcod2D_reshape[39][2] = {
734  { 2, 1 }, { 4, 3 }, { 6, 5 }, { -33, 7 }, { -17, 8 },
735  { -49, 9 }, { -34, 10 }, { 12, 11 }, { -18, -35 }, { -50, 13 },
736  { 15, 14 }, { -40, 16 }, { -36, 17 }, { -19, 18 }, { -1, -37 },
737  { -51, 19 }, { 21, 20 }, { -38, -65 }, { -2, -39 }, { -20, 22 },
738  { -52, 23 }, { 25, 24 }, { -21, 26 }, { -66, 27 }, { -53, 28 },
739  { -3, 29 }, { 31, 30 }, { -22, 32 }, { -54, 33 }, { -4, 34 },
740  { -56, 35 }, { -24, -67 }, { -23, -55 }, { -8, -72 }, { -5, 36 },
741  { -68, 37 }, { -6, 38 }, { -7, -69 }, { -70, -71 },
742 };
743 
744 const uint8_t ff_aac_lav_tab_XXX[3][4] = {
745  { 3, 5, 7, 9 }, { 1, 3, 5, 7 }, { 7, 1, 3, 5 }
746 };
747 
748 static av_cold void init_base_tables(void)
749 {
750  static VLCElem vlc_buf[(304 + 270 + 550 + 300 + 328 +
751  294 + 306 + 268 + 510 + 366 + 462)];
752  VLCInitState state = VLC_INIT_STATE(vlc_buf);
753 
754  for (unsigned i = 0; i < 11; i++) {
755 #define TAB_WRAP_SIZE(name) name[i], sizeof(name[i][0]), sizeof(name[i][0])
756  ff_vlc_spectral[i] =
761  0);
762  }
763 
767  sizeof(ff_aac_scalefactor_bits[0]),
768  sizeof(ff_aac_scalefactor_bits[0]),
770  sizeof(ff_aac_scalefactor_code[0]),
771  sizeof(ff_aac_scalefactor_code[0]), 0);
772 }
773 
774 static av_cold void aacdec_common_init(void)
775 {
777  init_sbr_tables();
779 }
780 
782 {
783  static AVOnce init_static_once = AV_ONCE_INIT;
784  ff_thread_once(&init_static_once, aacdec_common_init);
785 }
state
static struct @556 state
AAC_CHANNEL_BACK
@ AAC_CHANNEL_BACK
Definition: aac.h:84
AV_CHANNEL_LAYOUT_STEREO
#define AV_CHANNEL_LAYOUT_STEREO
Definition: channel_layout.h:395
ff_aac_spectral_sizes
const uint16_t ff_aac_spectral_sizes[11]
Definition: aactab.c:535
thread.h
ff_aac_hcod2D_IPD_03
const int16_t ff_aac_hcod2D_IPD_03[2][2][15][2]
Definition: aacdec_tab.c:628
ff_aac_codebook_vector_idx
const uint16_t *const ff_aac_codebook_vector_idx[]
Definition: aactab.c:1191
ff_aac_hcod1D_IPD
const int16_t ff_aac_hcod1D_IPD[2][7][2]
Definition: aacdec_tab.c:614
ff_aac_hcod2D_IPD_07
const int16_t ff_aac_hcod2D_IPD_07[2][2][63][2]
Definition: aacdec_tab.c:674
sbr_vlc_offsets
static const int8_t sbr_vlc_offsets[10]
Definition: aacdec_tab.c:257
ff_aac_hcod2D_ICC_01
const int16_t ff_aac_hcod2D_ICC_01[2][2][3][2]
Definition: aacdec_tab.c:501
ff_aac_sbr_vlc
const VLCElem * ff_aac_sbr_vlc[10]
Definition: aacdec_tab.c:262
ff_aac_lav_tab_XXX
const uint8_t ff_aac_lav_tab_XXX[3][4]
Definition: aacdec_tab.c:744
aacps.h
AV_CHAN_TOP_BACK_RIGHT
@ AV_CHAN_TOP_BACK_RIGHT
Definition: channel_layout.h:67
ff_aac_hcod_lav_idx
const int16_t ff_aac_hcod_lav_idx[3][2]
Definition: aacdec_tab.c:729
TYPE_CPE
@ TYPE_CPE
Definition: aac.h:45
tab
static const struct twinvq_data tab
Definition: twinvq_data.h:10345
AV_CHANNEL_LAYOUT_7POINT1_TOP_BACK
#define AV_CHANNEL_LAYOUT_7POINT1_TOP_BACK
Definition: channel_layout.h:435
AV_CHANNEL_LAYOUT_SURROUND
#define AV_CHANNEL_LAYOUT_SURROUND
Definition: channel_layout.h:398
ff_thread_once
static int ff_thread_once(char *control, void(*routine)(void))
Definition: thread.h:205
AV_CHAN_BOTTOM_FRONT_LEFT
@ AV_CHAN_BOTTOM_FRONT_LEFT
Definition: channel_layout.h:80
FF_ARRAY_ELEMS
#define FF_ARRAY_ELEMS(a)
Definition: sinewin_tablegen.c:29
ff_aac_hcod2D_CLD_03
const int16_t ff_aac_hcod2D_CLD_03[2][2][15][2]
Definition: aacdec_tab.c:306
av_cold
#define av_cold
Definition: attributes.h:106
VLCInitState
For static VLCs, the number of bits can often be hardcoded at each get_vlc2() callsite.
Definition: vlc.h:220
AV_CHANNEL_LAYOUT_4POINT0
#define AV_CHANNEL_LAYOUT_4POINT0
Definition: channel_layout.h:400
ff_aac_hcod2D_IPD_05
const int16_t ff_aac_hcod2D_IPD_05[2][2][35][2]
Definition: aacdec_tab.c:643
AV_CHANNEL_LAYOUT_7POINT1
#define AV_CHANNEL_LAYOUT_7POINT1
Definition: channel_layout.h:417
ff_ps_init_common
void ff_ps_init_common(void)
Definition: aacps_common.c:280
ff_aac_hcod2D_reshape
const int16_t ff_aac_hcod2D_reshape[39][2]
Definition: aacdec_tab.c:733
AV_CHANNEL_LAYOUT_5POINT0_BACK
#define AV_CHANNEL_LAYOUT_5POINT0_BACK
Definition: channel_layout.h:406
AV_CHAN_SIDE_RIGHT
@ AV_CHAN_SIDE_RIGHT
Definition: channel_layout.h:60
TAB_WRAP_SIZE
#define TAB_WRAP_SIZE(name)
ff_aac_hcod2D_CLD_07
const int16_t ff_aac_hcod2D_CLD_07[2][2][63][2]
Definition: aacdec_tab.c:352
init_sbr_tables
static av_cold void init_sbr_tables(void)
Definition: aacdec_tab.c:264
ff_aac_hcod2D_CLD_05
const int16_t ff_aac_hcod2D_CLD_05[2][2][35][2]
Definition: aacdec_tab.c:321
sbr_huffman_tab
static const uint8_t sbr_huffman_tab[][2]
Huffman tables for SBR.
Definition: aacdec_tab.c:116
AV_CHAN_TOP_SIDE_LEFT
@ AV_CHAN_TOP_SIDE_LEFT
Definition: channel_layout.h:77
ff_aac_hcod_firstband_CLD
const int16_t ff_aac_hcod_firstband_CLD[30][2]
Definition: aacdec_tab.c:282
AV_CHAN_TOP_SIDE_RIGHT
@ AV_CHAN_TOP_SIDE_RIGHT
Definition: channel_layout.h:78
AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK
#define AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK
Definition: channel_layout.h:419
AV_ONCE_INIT
#define AV_ONCE_INIT
Definition: thread.h:203
aacdec_common_init
static av_cold void aacdec_common_init(void)
Definition: aacdec_tab.c:774
ff_aac_hcod2D_ICC_03
const int16_t ff_aac_hcod2D_ICC_03[2][2][15][2]
Definition: aacdec_tab.c:508
AAC_CHANNEL_SIDE
@ AAC_CHANNEL_SIDE
Definition: aac.h:83
AV_CHAN_TOP_BACK_CENTER
@ AV_CHAN_TOP_BACK_CENTER
Definition: channel_layout.h:66
ff_aac_ch_layout
const AVChannelLayout ff_aac_ch_layout[]
Definition: aacdec_tab.c:96
aac.h
aactab.h
ff_aac_hcod2D_ICC_05
const int16_t ff_aac_hcod2D_ICC_05[2][2][35][2]
Definition: aacdec_tab.c:523
AV_CHAN_BOTTOM_FRONT_RIGHT
@ AV_CHAN_BOTTOM_FRONT_RIGHT
Definition: channel_layout.h:81
AV_CHAN_TOP_CENTER
@ AV_CHAN_TOP_CENTER
Definition: channel_layout.h:61
AAC_CHANNEL_FRONT
@ AAC_CHANNEL_FRONT
Definition: aac.h:82
AVOnce
#define AVOnce
Definition: thread.h:202
AV_CHAN_FRONT_RIGHT_OF_CENTER
@ AV_CHAN_FRONT_RIGHT_OF_CENTER
Definition: channel_layout.h:57
AV_CHANNEL_LAYOUT_22POINT2
#define AV_CHANNEL_LAYOUT_22POINT2
Definition: channel_layout.h:433
ff_aac_hcod_firstband_ICC
const int16_t ff_aac_hcod_firstband_ICC[7][2]
Definition: aacdec_tab.c:491
AV_CHAN_FRONT_RIGHT
@ AV_CHAN_FRONT_RIGHT
Definition: channel_layout.h:51
AV_CHAN_FRONT_CENTER
@ AV_CHAN_FRONT_CENTER
Definition: channel_layout.h:52
ff_aac_scalefactor_bits
const uint8_t ff_aac_scalefactor_bits[121]
Definition: aactab.c:200
AVChannelLayout
An AVChannelLayout holds information about the channel layout of audio data.
Definition: channel_layout.h:319
i
#define i(width, name, range_min, range_max)
Definition: cbs_h264.c:63
init_base_tables
static av_cold void init_base_tables(void)
Definition: aacdec_tab.c:748
AV_CHAN_LOW_FREQUENCY
@ AV_CHAN_LOW_FREQUENCY
Definition: channel_layout.h:53
VLCElem
Definition: vlc.h:32
AV_CHAN_BACK_RIGHT
@ AV_CHAN_BACK_RIGHT
Definition: channel_layout.h:55
ff_tags_per_config
const int8_t ff_tags_per_config[16]
Definition: aacdec_tab.c:38
ff_aac_spectral_codes
const uint16_t *const ff_aac_spectral_codes[11]
Definition: aactab.c:525
AV_CHAN_SIDE_LEFT
@ AV_CHAN_SIDE_LEFT
Definition: channel_layout.h:59
ff_aac_hcod2D_CLD_09
const int16_t ff_aac_hcod2D_CLD_09[2][2][99][2]
Definition: aacdec_tab.c:407
AV_CHAN_TOP_FRONT_RIGHT
@ AV_CHAN_TOP_FRONT_RIGHT
Definition: channel_layout.h:64
ff_aac_hcod1D_ICC
const int16_t ff_aac_hcod1D_ICC[7][2]
Definition: aacdec_tab.c:496
attributes.h
AV_CHAN_FRONT_LEFT_OF_CENTER
@ AV_CHAN_FRONT_LEFT_OF_CENTER
Definition: channel_layout.h:56
AV_CHAN_UNUSED
@ AV_CHAN_UNUSED
Channel is empty can be safely skipped.
Definition: channel_layout.h:91
ff_aac_hcod_firstband_IPD
const int16_t ff_aac_hcod_firstband_IPD[7][2]
Definition: aacdec_tab.c:609
AV_CHANNEL_LAYOUT_6POINT1_BACK
#define AV_CHANNEL_LAYOUT_6POINT1_BACK
Definition: channel_layout.h:413
sbr_huffman_nb_codes
static const uint8_t sbr_huffman_nb_codes[]
Definition: aacdec_tab.c:253
ff_aac_channel_layout_map
const uint8_t ff_aac_channel_layout_map[16][16][3]
Definition: aacdec_tab.c:40
ff_aac_hcod1D_CLD
const int16_t ff_aac_hcod1D_CLD[2][30][2]
Definition: aacdec_tab.c:291
TYPE_LFE
@ TYPE_LFE
Definition: aac.h:47
TYPE_SCE
@ TYPE_SCE
Definition: aac.h:44
AAC_CHANNEL_LFE
@ AAC_CHANNEL_LFE
Definition: aac.h:85
ff_aac_spectral_bits
const uint8_t *const ff_aac_spectral_bits[11]
Definition: aactab.c:530
AV_CHAN_BACK_CENTER
@ AV_CHAN_BACK_CENTER
Definition: channel_layout.h:58
AV_CHAN_NONE
@ AV_CHAN_NONE
Invalid channel index.
Definition: channel_layout.h:49
ff_aac_hcod2D_IPD_01
const int16_t ff_aac_hcod2D_IPD_01[2][2][3][2]
Definition: aacdec_tab.c:621
AV_CHAN_LOW_FREQUENCY_2
@ AV_CHAN_LOW_FREQUENCY_2
Definition: channel_layout.h:76
AV_CHAN_TOP_BACK_LEFT
@ AV_CHAN_TOP_BACK_LEFT
Definition: channel_layout.h:65
aacdec_tab.h
VLC_INIT_STATIC_TABLE
#define VLC_INIT_STATIC_TABLE(vlc_table, nb_bits, nb_codes, bits, bits_wrap, bits_size, codes, codes_wrap, codes_size, flags)
Definition: vlc.h:278
AV_CHAN_BACK_LEFT
@ AV_CHAN_BACK_LEFT
Definition: channel_layout.h:54
ff_vlc_init_tables_sparse
const av_cold VLCElem * ff_vlc_init_tables_sparse(VLCInitState *state, int nb_bits, int nb_codes, const void *bits, int bits_wrap, int bits_size, const void *codes, int codes_wrap, int codes_size, const void *symbols, int symbols_wrap, int symbols_size, int flags)
Definition: vlc.c:400
AV_CHAN_BOTTOM_FRONT_CENTER
@ AV_CHAN_BOTTOM_FRONT_CENTER
Definition: channel_layout.h:79
ff_vlc_init_tables_from_lengths
const av_cold VLCElem * ff_vlc_init_tables_from_lengths(VLCInitState *state, int nb_bits, int nb_codes, const int8_t *lens, int lens_wrap, const void *symbols, int symbols_wrap, int symbols_size, int offset, int flags)
Definition: vlc.c:366
AV_CHAN_TOP_FRONT_CENTER
@ AV_CHAN_TOP_FRONT_CENTER
Definition: channel_layout.h:63
ff_aacdec_common_init_once
av_cold void ff_aacdec_common_init_once(void)
Definition: aacdec_tab.c:781
AV_CHANNEL_LAYOUT_MONO
#define AV_CHANNEL_LAYOUT_MONO
Definition: channel_layout.h:394
ff_aac_channel_map
const int16_t ff_aac_channel_map[3][4][6]
Definition: aacdec_tab.c:75
ff_vlc_spectral
const VLCElem * ff_vlc_spectral[11]
Definition: aacdec_tab.c:112
VLC_INIT_STATE
#define VLC_INIT_STATE(_table)
Definition: vlc.h:225
ff_vlc_scalefactors
VLCElem ff_vlc_scalefactors[352]
Definition: aacdec_tab.c:111
AV_CHAN_TOP_FRONT_LEFT
@ AV_CHAN_TOP_FRONT_LEFT
Definition: channel_layout.h:62
vlc.h
AV_CHANNEL_LAYOUT_5POINT1_BACK
#define AV_CHANNEL_LAYOUT_5POINT1_BACK
Definition: channel_layout.h:407
ff_aac_hcod2D_ICC_07
const int16_t ff_aac_hcod2D_ICC_07[2][2][63][2]
Definition: aacdec_tab.c:554
AV_CHAN_FRONT_LEFT
@ AV_CHAN_FRONT_LEFT
Definition: channel_layout.h:50
ff_aac_scalefactor_code
const uint32_t ff_aac_scalefactor_code[121]
Definition: aactab.c:181