Mercurial > libavcodec.hg
annotate atrac3data.h @ 5775:38f220befc32 libavcodec
Replace "signed short" typecast with "int16_t" as suggested by
Mans Rullgard. Value at the right side is 16 bit length signed.
We can not know for sure that short is in fact 16 bits, even if
this virtually always is the case.
author | voroshil |
---|---|
date | Thu, 04 Oct 2007 15:13:42 +0000 |
parents | 3fd46e281bd8 |
children | 1d83e9c34641 |
rev | line source |
---|---|
4856 | 1 /* |
2 * Atrac 3 compatible decoder data | |
3 * Copyright (c) 2006-2007 Maxim Poliakovski | |
4 * Copyright (c) 2006-2007 Benjamin Larsson | |
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 atrac3data.h | |
25 * Atrac 3 AKA RealAudio 8 compatible decoder data | |
26 */ | |
27 | |
5163 | 28 #ifndef AVCODEC_ATRAC3DATA_H |
29 #define AVCODEC_ATRAC3DATA_H | |
30 | |
5162 | 31 #include <stdint.h> |
32 | |
4856 | 33 /* VLC tables */ |
34 | |
35 static const uint8_t huffcode1[9] = { | |
36 0x0,0x4,0x5,0xC,0xD,0x1C,0x1D,0x1E,0x1F, | |
37 }; | |
38 | |
39 static const uint8_t huffbits1[9] = { | |
40 1,3,3,4,4,5,5,5,5, | |
41 }; | |
42 | |
43 static const uint8_t huffcode2[5] = { | |
44 0x0,0x4,0x5,0x6,0x7, | |
45 }; | |
46 | |
47 static const uint8_t huffbits2[5] = { | |
48 1,3,3,3,3, | |
49 }; | |
50 | |
51 static const uint8_t huffcode3[7] = { | |
52 0x0,0x4,0x5,0xC,0xD,0xE,0xF, | |
53 }; | |
54 | |
55 static const uint8_t huffbits3[7] = { | |
56 1,3,3,4,4,4,4, | |
57 }; | |
58 | |
59 static const uint8_t huffcode4[9] = { | |
60 0x0,0x4,0x5,0xC,0xD,0x1C,0x1D,0x1E,0x1F, | |
61 }; | |
62 | |
63 static const uint8_t huffbits4[9] = { | |
64 1,3,3,4,4,5,5,5,5, | |
65 }; | |
66 | |
67 static const uint8_t huffcode5[15] = { | |
68 0x0,0x2,0x3,0x8,0x9,0xA,0xB,0x1C,0x1D,0x3C,0x3D,0x3E,0x3F,0xC,0xD, | |
69 }; | |
70 | |
71 static const uint8_t huffbits5[15] = { | |
72 2,3,3,4,4,4,4,5,5,6,6,6,6,4,4 | |
73 }; | |
74 | |
75 static const uint8_t huffcode6[31] = { | |
76 0x0,0x2,0x3,0x4,0x5,0x6,0x7,0x14,0x15,0x16,0x17,0x18,0x19,0x34,0x35, | |
77 0x36,0x37,0x38,0x39,0x3A,0x3B,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x8,0x9, | |
78 }; | |
79 | |
80 static const uint8_t huffbits6[31] = { | |
81 3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,4,4 | |
82 }; | |
83 | |
84 static const uint8_t huffcode7[63] = { | |
85 0x0,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,0x10,0x11,0x24,0x25,0x26,0x27,0x28, | |
86 0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x68,0x69,0x6A,0x6B,0x6C, | |
87 0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2, | |
88 0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x2,0x3, | |
89 }; | |
90 | |
91 static const uint8_t huffbits7[63] = { | |
92 3,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7, | |
93 7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,4,4 | |
94 }; | |
95 | |
96 static const uint8_t huff_tab_sizes[7] = { | |
97 9, 5, 7, 9, 15, 31, 63, | |
98 }; | |
99 | |
100 static const uint8_t* huff_codes[7] = { | |
101 huffcode1,huffcode2,huffcode3,huffcode4,huffcode5,huffcode6,huffcode7, | |
102 }; | |
103 | |
104 static const uint8_t* huff_bits[7] = { | |
105 huffbits1,huffbits2,huffbits3,huffbits4,huffbits5,huffbits6,huffbits7, | |
106 }; | |
107 | |
108 /* selector tables */ | |
109 | |
110 static const uint8_t CLCLengthTab[8] = {0, 4, 3, 3, 4, 4, 5, 6}; | |
111 static const int8_t seTab_0[4] = {0, 1, -2, -1}; | |
112 static const int8_t decTable1[18] = {0,0, 0,1, 0,-1, 1,0, -1,0, 1,1, 1,-1, -1,1, -1,-1}; | |
113 | |
114 | |
115 /* tables for the scalefactor decoding */ | |
116 | |
117 static const float iMaxQuant[8] = { | |
118 0.0, 1.0/1.5, 1.0/2.5, 1.0/3.5, 1.0/4.5, 1.0/7.5, 1.0/15.5, 1.0/31.5 | |
119 }; | |
120 | |
121 static const uint16_t subbandTab[33] = { | |
122 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, | |
123 256, 288, 320, 352, 384, 416, 448, 480, 512, 576, 640, 704, 768, 896, 1024 | |
124 }; | |
125 | |
126 /* transform data */ | |
127 | |
128 static const float qmf_48tap_half[24] = { | |
129 -0.00001461907, -0.00009205479, -0.000056157569, 0.00030117269, | |
130 0.0002422519,-0.00085293897, -0.0005205574, 0.0020340169, | |
131 0.00078333891, -0.0042153862, -0.00075614988, 0.0078402944, | |
132 -0.000061169922, -0.01344162, 0.0024626821, 0.021736089, | |
133 -0.007801671, -0.034090221, 0.01880949, 0.054326009, | |
134 -0.043596379, -0.099384367, 0.13207909, 0.46424159 | |
135 }; | |
136 | |
137 /* joint stereo related tables */ | |
138 static const float matrixCoeffs[8] = {0.0, 2.0, 2.0, 2.0, 0.0, 0.0, 1.0, 1.0}; | |
5163 | 139 |
5169
3fd46e281bd8
add a comment to indicate which #endif belong to which #define
gpoirier
parents:
5163
diff
changeset
|
140 #endif // AVCODEC_ATRAC3DATA_H |