]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/blob - libavcodec/ac3tab.h
make the tables static
[frescor/ffmpeg.git] / libavcodec / ac3tab.h
1 /**
2  * @file ac3tab.h
3  * tables taken directly from AC3 spec.
4  */
5
6 /* possible frequencies */
7 static const uint16_t ac3_freqs[3] = { 48000, 44100, 32000 };
8
9 /* possible bitrates */
10 static const uint16_t ac3_bitratetab[19] = {
11     32, 40, 48, 56, 64, 80, 96, 112, 128, 
12     160, 192, 224, 256, 320, 384, 448, 512, 576, 640 
13 };
14
15 /* AC3 MDCT window */
16
17 /* MDCT window */
18 static const int16_t ac3_window[256] = {
19     4,    7,   12,   16,   21,   28,   34,   42,
20    51,   61,   72,   84,   97,  111,  127,  145,
21   164,  184,  207,  231,  257,  285,  315,  347,
22   382,  419,  458,  500,  544,  591,  641,  694,
23   750,  810,  872,  937, 1007, 1079, 1155, 1235,
24  1318, 1406, 1497, 1593, 1692, 1796, 1903, 2016,
25  2132, 2253, 2379, 2509, 2644, 2783, 2927, 3076,
26  3230, 3389, 3552, 3721, 3894, 4072, 4255, 4444,
27  4637, 4835, 5038, 5246, 5459, 5677, 5899, 6127,
28  6359, 6596, 6837, 7083, 7334, 7589, 7848, 8112,
29  8380, 8652, 8927, 9207, 9491, 9778,10069,10363,
30 10660,10960,11264,11570,11879,12190,12504,12820,
31 13138,13458,13780,14103,14427,14753,15079,15407,
32 15735,16063,16392,16720,17049,17377,17705,18032,
33 18358,18683,19007,19330,19651,19970,20287,20602,
34 20914,21225,21532,21837,22139,22438,22733,23025,
35 23314,23599,23880,24157,24430,24699,24964,25225,
36 25481,25732,25979,26221,26459,26691,26919,27142,
37 27359,27572,27780,27983,28180,28373,28560,28742,
38 28919,29091,29258,29420,29577,29729,29876,30018,
39 30155,30288,30415,30538,30657,30771,30880,30985,
40 31086,31182,31274,31363,31447,31528,31605,31678,
41 31747,31814,31877,31936,31993,32046,32097,32145,
42 32190,32232,32272,32310,32345,32378,32409,32438,
43 32465,32490,32513,32535,32556,32574,32592,32608,
44 32623,32636,32649,32661,32671,32681,32690,32698,
45 32705,32712,32718,32724,32729,32733,32737,32741,
46 32744,32747,32750,32752,32754,32756,32757,32759,
47 32760,32761,32762,32763,32764,32764,32765,32765,
48 32766,32766,32766,32766,32767,32767,32767,32767,
49 32767,32767,32767,32767,32767,32767,32767,32767,
50 32767,32767,32767,32767,32767,32767,32767,32767,  
51 };
52
53 static uint8_t masktab[253];
54
55 static const uint8_t latab[260]= {
56 0x0040,0x003f,0x003e,0x003d,0x003c,0x003b,0x003a,0x0039,0x0038,0x0037,
57 0x0036,0x0035,0x0034,0x0034,0x0033,0x0032,0x0031,0x0030,0x002f,0x002f,
58 0x002e,0x002d,0x002c,0x002c,0x002b,0x002a,0x0029,0x0029,0x0028,0x0027,
59 0x0026,0x0026,0x0025,0x0024,0x0024,0x0023,0x0023,0x0022,0x0021,0x0021,
60 0x0020,0x0020,0x001f,0x001e,0x001e,0x001d,0x001d,0x001c,0x001c,0x001b,
61 0x001b,0x001a,0x001a,0x0019,0x0019,0x0018,0x0018,0x0017,0x0017,0x0016,
62 0x0016,0x0015,0x0015,0x0015,0x0014,0x0014,0x0013,0x0013,0x0013,0x0012,
63 0x0012,0x0012,0x0011,0x0011,0x0011,0x0010,0x0010,0x0010,0x000f,0x000f,
64 0x000f,0x000e,0x000e,0x000e,0x000d,0x000d,0x000d,0x000d,0x000c,0x000c,
65 0x000c,0x000c,0x000b,0x000b,0x000b,0x000b,0x000a,0x000a,0x000a,0x000a,
66 0x000a,0x0009,0x0009,0x0009,0x0009,0x0009,0x0008,0x0008,0x0008,0x0008,
67 0x0008,0x0008,0x0007,0x0007,0x0007,0x0007,0x0007,0x0007,0x0006,0x0006,
68 0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0005,0x0005,0x0005,0x0005,
69 0x0005,0x0005,0x0005,0x0005,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
70 0x0004,0x0004,0x0004,0x0004,0x0004,0x0003,0x0003,0x0003,0x0003,0x0003,
71 0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0003,0x0002,
72 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
73 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0001,0x0001,
74 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
75 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
76 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
77 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
78 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
79 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
80 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
81 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
82 };
83
84 static const uint16_t hth[50][3]= {
85 { 0x04d0,0x04f0,0x0580 },
86 { 0x04d0,0x04f0,0x0580 },
87 { 0x0440,0x0460,0x04b0 },
88 { 0x0400,0x0410,0x0450 },
89 { 0x03e0,0x03e0,0x0420 },
90 { 0x03c0,0x03d0,0x03f0 },
91 { 0x03b0,0x03c0,0x03e0 },
92 { 0x03b0,0x03b0,0x03d0 },
93 { 0x03a0,0x03b0,0x03c0 },
94 { 0x03a0,0x03a0,0x03b0 },
95 { 0x03a0,0x03a0,0x03b0 },
96 { 0x03a0,0x03a0,0x03b0 },
97 { 0x03a0,0x03a0,0x03a0 },
98 { 0x0390,0x03a0,0x03a0 },
99 { 0x0390,0x0390,0x03a0 },
100 { 0x0390,0x0390,0x03a0 },
101 { 0x0380,0x0390,0x03a0 },
102 { 0x0380,0x0380,0x03a0 },
103 { 0x0370,0x0380,0x03a0 },
104 { 0x0370,0x0380,0x03a0 },
105 { 0x0360,0x0370,0x0390 },
106 { 0x0360,0x0370,0x0390 },
107 { 0x0350,0x0360,0x0390 },
108 { 0x0350,0x0360,0x0390 },
109 { 0x0340,0x0350,0x0380 },
110 { 0x0340,0x0350,0x0380 },
111 { 0x0330,0x0340,0x0380 },
112 { 0x0320,0x0340,0x0370 },
113 { 0x0310,0x0320,0x0360 },
114 { 0x0300,0x0310,0x0350 },
115 { 0x02f0,0x0300,0x0340 },
116 { 0x02f0,0x02f0,0x0330 },
117 { 0x02f0,0x02f0,0x0320 },
118 { 0x02f0,0x02f0,0x0310 },
119 { 0x0300,0x02f0,0x0300 },
120 { 0x0310,0x0300,0x02f0 },
121 { 0x0340,0x0320,0x02f0 },
122 { 0x0390,0x0350,0x02f0 },
123 { 0x03e0,0x0390,0x0300 },
124 { 0x0420,0x03e0,0x0310 },
125 { 0x0460,0x0420,0x0330 },
126 { 0x0490,0x0450,0x0350 },
127 { 0x04a0,0x04a0,0x03c0 },
128 { 0x0460,0x0490,0x0410 },
129 { 0x0440,0x0460,0x0470 },
130 { 0x0440,0x0440,0x04a0 },
131 { 0x0520,0x0480,0x0460 },
132 { 0x0800,0x0630,0x0440 },
133 { 0x0840,0x0840,0x0450 },
134 { 0x0840,0x0840,0x04e0 },
135 };
136
137 static const uint8_t baptab[64]= {
138     0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 
139     3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 
140     7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 
141     9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 
142     12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 
143     14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 
144     15, 15, 15, 15,
145 };
146
147 static const uint8_t sdecaytab[4]={ 
148     0x0f, 0x11, 0x13, 0x15,
149 };
150
151 static const uint8_t fdecaytab[4]={ 
152     0x3f, 0x53, 0x67, 0x7b, 
153 };
154
155 static const uint16_t sgaintab[4]= { 
156     0x540, 0x4d8, 0x478, 0x410,
157 };
158
159 static const uint16_t dbkneetab[4]= { 
160     0x000, 0x700, 0x900, 0xb00,
161 };
162
163 static const uint16_t floortab[8]= { 
164     0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
165 };
166
167 static const uint16_t fgaintab[8]= {
168     0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
169 };
170
171 static const uint8_t bndsz[50]={
172     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
173     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 
174     3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24 
175 };
176
177 static uint8_t bndtab[51]; 
178
179 /* fft & mdct sin cos tables */
180 static int16_t costab[64];
181 static int16_t sintab[64];
182 static int16_t fft_rev[512];
183 static int16_t xcos1[128];
184 static int16_t xsin1[128];
185
186 static uint16_t crc_table[256];