1 /*
2 * AC-3 tables
3 * copyright (c) 2001 Fabrice Bellard
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22 /**
23 * @file
24 * tables taken directly from the AC-3 spec.
25 */
26
29
31
32 /**
33 * Possible frame sizes.
34 * from ATSC A/52 Table 5.18 Frame Size Code Table.
35 */
37 { 64, 69, 96 },
38 { 64, 70, 96 },
39 { 80, 87, 120 },
40 { 80, 88, 120 },
41 { 96, 104, 144 },
42 { 96, 105, 144 },
43 { 112, 121, 168 },
44 { 112, 122, 168 },
45 { 128, 139, 192 },
46 { 128, 140, 192 },
47 { 160, 174, 240 },
48 { 160, 175, 240 },
49 { 192, 208, 288 },
50 { 192, 209, 288 },
51 { 224, 243, 336 },
52 { 224, 244, 336 },
53 { 256, 278, 384 },
54 { 256, 279, 384 },
55 { 320, 348, 480 },
56 { 320, 349, 480 },
57 { 384, 417, 576 },
58 { 384, 418, 576 },
59 { 448, 487, 672 },
60 { 448, 488, 672 },
61 { 512, 557, 768 },
62 { 512, 558, 768 },
63 { 640, 696, 960 },
64 { 640, 697, 960 },
65 { 768, 835, 1152 },
66 { 768, 836, 1152 },
67 { 896, 975, 1344 },
68 { 896, 976, 1344 },
69 { 1024, 1114, 1536 },
70 { 1024, 1115, 1536 },
71 { 1152, 1253, 1728 },
72 { 1152, 1254, 1728 },
73 { 1280, 1393, 1920 },
74 { 1280, 1394, 1920 },
75 };
76
77 /**
78 * Map audio coding mode (acmod) to number of full-bandwidth channels.
79 * from ATSC A/52 Table 5.8 Audio Coding Mode
80 */
82 2, 1, 2, 3, 3, 4, 4, 5
83 };
84
85 /**
86 * Table to remap channels from AC-3 order to SMPTE order.
87 * [channel_mode][lfe][ch]
88 */
91 { { 0, 1, 2, 3, }, { 0, 1, 4, 2, 3, } },
92 { { 0, 2, 1, 3, 4, }, { 0, 2, 1, 5, 3, 4 } },
93 };
94
95 /* possible frequencies */
97
98 /* possible bitrates */
100 32, 40, 48, 56, 64, 80, 96, 112, 128,
101 160, 192, 224, 256, 320, 384, 448, 512, 576, 640
102 };
103
104 /**
105 * Table of bin locations for rematrixing bands
106 * reference: Section 7.5.2 Rematrixing : Frequency Band Definitions
107 */
109
110 /**
111 * Table E2.16 Default Coupling Banding Structure
112 */
114 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1
115 };
116
118 0, 1, 1, 1, 1, 1, 2, 2, 3, 3,
119 3, 4, 4, 5, 5, 6, 6, 6, 6, 7,
120 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
121 9, 10, 10, 10, 10, 11, 11, 11, 11, 12,
122 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
123 14, 14, 14, 14, 14, 15, 15, 15, 15, 15,
124 15, 15, 15, 15,
125 };
126
128 0x0f, 0x11, 0x13, 0x15,
129 };
130
132 0x3f, 0x53, 0x67, 0x7b,
133 };
134
136 0x540, 0x4d8, 0x478, 0x410,
137 };
138
140 0x000, 0x700, 0x900, 0xb00,
141 };
142
144 0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
145 };
146
148 0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
149 };
150
151 /** Adjustments in dB gain */
162 };
163
181 };