Originally committed as revision 9060 to svn://svn.ffmpeg.org/ffmpeg/trunk
| ... | ... |
@@ -19,7 +19,7 @@ OBJS= bitstream.o \ |
| 19 | 19 |
motion_est.o \ |
| 20 | 20 |
imgconvert.o \ |
| 21 | 21 |
mpeg12.o \ |
| 22 |
- mpegaudiodec.o \ |
|
| 22 |
+ mpegaudiodec.o mpegaudiodata.o \ |
|
| 23 | 23 |
simple_idct.o \ |
| 24 | 24 |
ratecontrol.o \ |
| 25 | 25 |
eval.o \ |
| ... | ... |
@@ -107,7 +107,7 @@ OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpeg.o jpeglsdec.o jpegls. |
| 107 | 107 |
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpeg.o mpegvideo.o |
| 108 | 108 |
OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o |
| 109 | 109 |
OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o |
| 110 |
-OBJS-$(CONFIG_MP2_ENCODER) += mpegaudio.o |
|
| 110 |
+OBJS-$(CONFIG_MP2_ENCODER) += mpegaudio.o mpegaudiodata.o |
|
| 111 | 111 |
OBJS-$(CONFIG_MPC7_DECODER) += mpc.o |
| 112 | 112 |
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4.o msmpeg4data.o |
| 113 | 113 |
OBJS-$(CONFIG_MSMPEG4V1_ENCODER) += msmpeg4.o msmpeg4data.o |
| ... | ... |
@@ -308,7 +308,7 @@ OBJS-$(CONFIG_DUMP_EXTRADATA_BSF) += bitstream_filter.o |
| 308 | 308 |
OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += bitstream_filter.o |
| 309 | 309 |
OBJS-$(CONFIG_NOISE_BSF) += bitstream_filter.o |
| 310 | 310 |
OBJS-$(CONFIG_MP3_HEADER_COMPRESS_BSF) += bitstream_filter.o |
| 311 |
-OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += bitstream_filter.o |
|
| 311 |
+OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += bitstream_filter.o mpegaudiodata.o |
|
| 312 | 312 |
OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o |
| 313 | 313 |
OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF) += mpeg12.o |
| 314 | 314 |
|
| ... | ... |
@@ -79,15 +79,6 @@ void ff_mpa_synth_filter(MPA_INT *synth_buf_ptr, int *synth_buf_offset, |
| 79 | 79 |
OUT_INT *samples, int incr, |
| 80 | 80 |
int32_t sb_samples[SBLIMIT]); |
| 81 | 81 |
|
| 82 |
-extern const uint16_t mpa_bitrate_tab[2][3][15]; |
|
| 83 |
-extern const uint16_t mpa_freq_tab[3]; |
|
| 84 |
-extern const unsigned char *alloc_tables[5]; |
|
| 85 |
-extern const double enwindow[512]; |
|
| 86 |
-extern const int sblimit_table[5]; |
|
| 87 |
-extern const int quant_steps[17]; |
|
| 88 |
-extern const int quant_bits[17]; |
|
| 89 |
-extern const int32_t mpa_enwindow[257]; |
|
| 90 |
- |
|
| 91 | 82 |
/* fast header check for resync */ |
| 92 | 83 |
static inline int ff_mpa_check_header(uint32_t header){
|
| 93 | 84 |
/* header */ |
| 94 | 85 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,225 @@ |
| 0 |
+/* |
|
| 1 |
+ * MPEG Audio common tables |
|
| 2 |
+ * copyright (c) 2002 Fabrice Bellard |
|
| 3 |
+ * |
|
| 4 |
+ * This file is part of FFmpeg. |
|
| 5 |
+ * |
|
| 6 |
+ * FFmpeg is free software; you can redistribute it and/or |
|
| 7 |
+ * modify it under the terms of the GNU Lesser General Public |
|
| 8 |
+ * License as published by the Free Software Foundation; either |
|
| 9 |
+ * version 2.1 of the License, or (at your option) any later version. |
|
| 10 |
+ * |
|
| 11 |
+ * FFmpeg is distributed in the hope that it will be useful, |
|
| 12 |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 13 |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
| 14 |
+ * Lesser General Public License for more details. |
|
| 15 |
+ * |
|
| 16 |
+ * You should have received a copy of the GNU Lesser General Public |
|
| 17 |
+ * License along with FFmpeg; if not, write to the Free Software |
|
| 18 |
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
| 19 |
+ */ |
|
| 20 |
+ |
|
| 21 |
+/** |
|
| 22 |
+ * @file mpegaudiodata.c |
|
| 23 |
+ * mpeg audio layer common tables. |
|
| 24 |
+ */ |
|
| 25 |
+ |
|
| 26 |
+#include "mpegaudiodata.h" |
|
| 27 |
+ |
|
| 28 |
+ |
|
| 29 |
+const uint16_t mpa_bitrate_tab[2][3][15] = {
|
|
| 30 |
+ { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 },
|
|
| 31 |
+ {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 },
|
|
| 32 |
+ {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } },
|
|
| 33 |
+ { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256},
|
|
| 34 |
+ {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
|
|
| 35 |
+ {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
|
|
| 36 |
+ } |
|
| 37 |
+}; |
|
| 38 |
+ |
|
| 39 |
+const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
|
|
| 40 |
+ |
|
| 41 |
+/*******************************************************/ |
|
| 42 |
+/* half mpeg encoding window (full precision) */ |
|
| 43 |
+const int32_t mpa_enwindow[257] = {
|
|
| 44 |
+ 0, -1, -1, -1, -1, -1, -1, -2, |
|
| 45 |
+ -2, -2, -2, -3, -3, -4, -4, -5, |
|
| 46 |
+ -5, -6, -7, -7, -8, -9, -10, -11, |
|
| 47 |
+ -13, -14, -16, -17, -19, -21, -24, -26, |
|
| 48 |
+ -29, -31, -35, -38, -41, -45, -49, -53, |
|
| 49 |
+ -58, -63, -68, -73, -79, -85, -91, -97, |
|
| 50 |
+ -104, -111, -117, -125, -132, -139, -147, -154, |
|
| 51 |
+ -161, -169, -176, -183, -190, -196, -202, -208, |
|
| 52 |
+ 213, 218, 222, 225, 227, 228, 228, 227, |
|
| 53 |
+ 224, 221, 215, 208, 200, 189, 177, 163, |
|
| 54 |
+ 146, 127, 106, 83, 57, 29, -2, -36, |
|
| 55 |
+ -72, -111, -153, -197, -244, -294, -347, -401, |
|
| 56 |
+ -459, -519, -581, -645, -711, -779, -848, -919, |
|
| 57 |
+ -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498, |
|
| 58 |
+ -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962, |
|
| 59 |
+ -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063, |
|
| 60 |
+ 2037, 2000, 1952, 1893, 1822, 1739, 1644, 1535, |
|
| 61 |
+ 1414, 1280, 1131, 970, 794, 605, 402, 185, |
|
| 62 |
+ -45, -288, -545, -814, -1095, -1388, -1692, -2006, |
|
| 63 |
+ -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788, |
|
| 64 |
+ -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, |
|
| 65 |
+ -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585, |
|
| 66 |
+ -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750, |
|
| 67 |
+ -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134, |
|
| 68 |
+ 6574, 5959, 5288, 4561, 3776, 2935, 2037, 1082, |
|
| 69 |
+ 70, -998, -2122, -3300, -4533, -5818, -7154, -8540, |
|
| 70 |
+ -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189, |
|
| 71 |
+-22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640, |
|
| 72 |
+-37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137, |
|
| 73 |
+-51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684, |
|
| 74 |
+-64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420, |
|
| 75 |
+-72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992, |
|
| 76 |
+ 75038, |
|
| 77 |
+}; |
|
| 78 |
+ |
|
| 79 |
+/*******************************************************/ |
|
| 80 |
+/* layer 2 tables */ |
|
| 81 |
+ |
|
| 82 |
+const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
|
|
| 83 |
+ |
|
| 84 |
+const int quant_steps[17] = {
|
|
| 85 |
+ 3, 5, 7, 9, 15, |
|
| 86 |
+ 31, 63, 127, 255, 511, |
|
| 87 |
+ 1023, 2047, 4095, 8191, 16383, |
|
| 88 |
+ 32767, 65535 |
|
| 89 |
+}; |
|
| 90 |
+ |
|
| 91 |
+/* we use a negative value if grouped */ |
|
| 92 |
+const int quant_bits[17] = {
|
|
| 93 |
+ -5, -7, 3, -10, 4, |
|
| 94 |
+ 5, 6, 7, 8, 9, |
|
| 95 |
+ 10, 11, 12, 13, 14, |
|
| 96 |
+ 15, 16 |
|
| 97 |
+}; |
|
| 98 |
+ |
|
| 99 |
+/* encoding tables which give the quantization index. Note how it is |
|
| 100 |
+ possible to store them efficiently ! */ |
|
| 101 |
+static const unsigned char alloc_table_0[] = {
|
|
| 102 |
+ 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 103 |
+ 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 104 |
+ 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 105 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 106 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 107 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 108 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 109 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 110 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 111 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 112 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 113 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 114 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 115 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 116 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 117 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 118 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 119 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 120 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 121 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 122 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 123 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 124 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 125 |
+ 2, 0, 1, 16, |
|
| 126 |
+ 2, 0, 1, 16, |
|
| 127 |
+ 2, 0, 1, 16, |
|
| 128 |
+ 2, 0, 1, 16, |
|
| 129 |
+}; |
|
| 130 |
+ |
|
| 131 |
+static const unsigned char alloc_table_1[] = {
|
|
| 132 |
+ 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 133 |
+ 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 134 |
+ 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 135 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 136 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 137 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 138 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 139 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 140 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 141 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 142 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 143 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 144 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 145 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 146 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 147 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 148 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 149 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 150 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 151 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 152 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 153 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 154 |
+ 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 155 |
+ 2, 0, 1, 16, |
|
| 156 |
+ 2, 0, 1, 16, |
|
| 157 |
+ 2, 0, 1, 16, |
|
| 158 |
+ 2, 0, 1, 16, |
|
| 159 |
+ 2, 0, 1, 16, |
|
| 160 |
+ 2, 0, 1, 16, |
|
| 161 |
+ 2, 0, 1, 16, |
|
| 162 |
+}; |
|
| 163 |
+ |
|
| 164 |
+static const unsigned char alloc_table_2[] = {
|
|
| 165 |
+ 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 166 |
+ 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 167 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 168 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 169 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 170 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 171 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 172 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 173 |
+}; |
|
| 174 |
+ |
|
| 175 |
+static const unsigned char alloc_table_3[] = {
|
|
| 176 |
+ 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 177 |
+ 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 178 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 179 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 180 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 181 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 182 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 183 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 184 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 185 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 186 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 187 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 188 |
+}; |
|
| 189 |
+ |
|
| 190 |
+static const unsigned char alloc_table_4[] = {
|
|
| 191 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 192 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 193 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 194 |
+ 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 195 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 196 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 197 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 198 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 199 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 200 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 201 |
+ 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 202 |
+ 2, 0, 1, 3, |
|
| 203 |
+ 2, 0, 1, 3, |
|
| 204 |
+ 2, 0, 1, 3, |
|
| 205 |
+ 2, 0, 1, 3, |
|
| 206 |
+ 2, 0, 1, 3, |
|
| 207 |
+ 2, 0, 1, 3, |
|
| 208 |
+ 2, 0, 1, 3, |
|
| 209 |
+ 2, 0, 1, 3, |
|
| 210 |
+ 2, 0, 1, 3, |
|
| 211 |
+ 2, 0, 1, 3, |
|
| 212 |
+ 2, 0, 1, 3, |
|
| 213 |
+ 2, 0, 1, 3, |
|
| 214 |
+ 2, 0, 1, 3, |
|
| 215 |
+ 2, 0, 1, 3, |
|
| 216 |
+ 2, 0, 1, 3, |
|
| 217 |
+ 2, 0, 1, 3, |
|
| 218 |
+ 2, 0, 1, 3, |
|
| 219 |
+ 2, 0, 1, 3, |
|
| 220 |
+ 2, 0, 1, 3, |
|
| 221 |
+}; |
|
| 222 |
+ |
|
| 223 |
+const unsigned char *alloc_tables[5] = |
|
| 224 |
+{ alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
|
| 0 | 225 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,40 @@ |
| 0 |
+/* |
|
| 1 |
+ * MPEG Audio common tables |
|
| 2 |
+ * copyright (c) 2002 Fabrice Bellard |
|
| 3 |
+ * |
|
| 4 |
+ * This file is part of FFmpeg. |
|
| 5 |
+ * |
|
| 6 |
+ * FFmpeg is free software; you can redistribute it and/or |
|
| 7 |
+ * modify it under the terms of the GNU Lesser General Public |
|
| 8 |
+ * License as published by the Free Software Foundation; either |
|
| 9 |
+ * version 2.1 of the License, or (at your option) any later version. |
|
| 10 |
+ * |
|
| 11 |
+ * FFmpeg is distributed in the hope that it will be useful, |
|
| 12 |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 13 |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
| 14 |
+ * Lesser General Public License for more details. |
|
| 15 |
+ * |
|
| 16 |
+ * You should have received a copy of the GNU Lesser General Public |
|
| 17 |
+ * License along with FFmpeg; if not, write to the Free Software |
|
| 18 |
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
| 19 |
+ */ |
|
| 20 |
+ |
|
| 21 |
+/** |
|
| 22 |
+ * @file mpegaudiodata.h |
|
| 23 |
+ * mpeg audio layer common tables. |
|
| 24 |
+ */ |
|
| 25 |
+ |
|
| 26 |
+#ifndef MPEGAUDIODATA_H |
|
| 27 |
+#define MPEGAUDIODATA_H |
|
| 28 |
+ |
|
| 29 |
+#include "common.h" |
|
| 30 |
+ |
|
| 31 |
+extern const uint16_t mpa_bitrate_tab[2][3][15]; |
|
| 32 |
+extern const uint16_t mpa_freq_tab[3]; |
|
| 33 |
+extern const int32_t mpa_enwindow[257]; |
|
| 34 |
+extern const int sblimit_table[5]; |
|
| 35 |
+extern const int quant_steps[17]; |
|
| 36 |
+extern const int quant_bits[17]; |
|
| 37 |
+extern const unsigned char *alloc_tables[5]; |
|
| 38 |
+ |
|
| 39 |
+#endif /* MPEGAUDIODATA_H */ |
| ... | ... |
@@ -24,203 +24,6 @@ |
| 24 | 24 |
* mpeg audio layer decoder tables. |
| 25 | 25 |
*/ |
| 26 | 26 |
|
| 27 |
-const uint16_t mpa_bitrate_tab[2][3][15] = {
|
|
| 28 |
- { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 },
|
|
| 29 |
- {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 },
|
|
| 30 |
- {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 } },
|
|
| 31 |
- { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256},
|
|
| 32 |
- {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
|
|
| 33 |
- {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
|
|
| 34 |
- } |
|
| 35 |
-}; |
|
| 36 |
- |
|
| 37 |
-const uint16_t mpa_freq_tab[3] = { 44100, 48000, 32000 };
|
|
| 38 |
- |
|
| 39 |
-/*******************************************************/ |
|
| 40 |
-/* half mpeg encoding window (full precision) */ |
|
| 41 |
-const int32_t mpa_enwindow[257] = {
|
|
| 42 |
- 0, -1, -1, -1, -1, -1, -1, -2, |
|
| 43 |
- -2, -2, -2, -3, -3, -4, -4, -5, |
|
| 44 |
- -5, -6, -7, -7, -8, -9, -10, -11, |
|
| 45 |
- -13, -14, -16, -17, -19, -21, -24, -26, |
|
| 46 |
- -29, -31, -35, -38, -41, -45, -49, -53, |
|
| 47 |
- -58, -63, -68, -73, -79, -85, -91, -97, |
|
| 48 |
- -104, -111, -117, -125, -132, -139, -147, -154, |
|
| 49 |
- -161, -169, -176, -183, -190, -196, -202, -208, |
|
| 50 |
- 213, 218, 222, 225, 227, 228, 228, 227, |
|
| 51 |
- 224, 221, 215, 208, 200, 189, 177, 163, |
|
| 52 |
- 146, 127, 106, 83, 57, 29, -2, -36, |
|
| 53 |
- -72, -111, -153, -197, -244, -294, -347, -401, |
|
| 54 |
- -459, -519, -581, -645, -711, -779, -848, -919, |
|
| 55 |
- -991, -1064, -1137, -1210, -1283, -1356, -1428, -1498, |
|
| 56 |
- -1567, -1634, -1698, -1759, -1817, -1870, -1919, -1962, |
|
| 57 |
- -2001, -2032, -2057, -2075, -2085, -2087, -2080, -2063, |
|
| 58 |
- 2037, 2000, 1952, 1893, 1822, 1739, 1644, 1535, |
|
| 59 |
- 1414, 1280, 1131, 970, 794, 605, 402, 185, |
|
| 60 |
- -45, -288, -545, -814, -1095, -1388, -1692, -2006, |
|
| 61 |
- -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788, |
|
| 62 |
- -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, |
|
| 63 |
- -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585, |
|
| 64 |
- -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750, |
|
| 65 |
- -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134, |
|
| 66 |
- 6574, 5959, 5288, 4561, 3776, 2935, 2037, 1082, |
|
| 67 |
- 70, -998, -2122, -3300, -4533, -5818, -7154, -8540, |
|
| 68 |
- -9975,-11455,-12980,-14548,-16155,-17799,-19478,-21189, |
|
| 69 |
--22929,-24694,-26482,-28289,-30112,-31947,-33791,-35640, |
|
| 70 |
--37489,-39336,-41176,-43006,-44821,-46617,-48390,-50137, |
|
| 71 |
--51853,-53534,-55178,-56778,-58333,-59838,-61289,-62684, |
|
| 72 |
--64019,-65290,-66494,-67629,-68692,-69679,-70590,-71420, |
|
| 73 |
--72169,-72835,-73415,-73908,-74313,-74630,-74856,-74992, |
|
| 74 |
- 75038, |
|
| 75 |
-}; |
|
| 76 |
- |
|
| 77 |
-/*******************************************************/ |
|
| 78 |
-/* layer 2 tables */ |
|
| 79 |
- |
|
| 80 |
-const int sblimit_table[5] = { 27 , 30 , 8, 12 , 30 };
|
|
| 81 |
- |
|
| 82 |
-const int quant_steps[17] = {
|
|
| 83 |
- 3, 5, 7, 9, 15, |
|
| 84 |
- 31, 63, 127, 255, 511, |
|
| 85 |
- 1023, 2047, 4095, 8191, 16383, |
|
| 86 |
- 32767, 65535 |
|
| 87 |
-}; |
|
| 88 |
- |
|
| 89 |
-/* we use a negative value if grouped */ |
|
| 90 |
-const int quant_bits[17] = {
|
|
| 91 |
- -5, -7, 3, -10, 4, |
|
| 92 |
- 5, 6, 7, 8, 9, |
|
| 93 |
- 10, 11, 12, 13, 14, |
|
| 94 |
- 15, 16 |
|
| 95 |
-}; |
|
| 96 |
- |
|
| 97 |
-/* encoding tables which give the quantization index. Note how it is |
|
| 98 |
- possible to store them efficiently ! */ |
|
| 99 |
-static const unsigned char alloc_table_0[] = {
|
|
| 100 |
- 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 101 |
- 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 102 |
- 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 103 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 104 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 105 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 106 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 107 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 108 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 109 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 110 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 111 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 112 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 113 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 114 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 115 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 116 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 117 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 118 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 119 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 120 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 121 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 122 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 123 |
- 2, 0, 1, 16, |
|
| 124 |
- 2, 0, 1, 16, |
|
| 125 |
- 2, 0, 1, 16, |
|
| 126 |
- 2, 0, 1, 16, |
|
| 127 |
-}; |
|
| 128 |
- |
|
| 129 |
-static const unsigned char alloc_table_1[] = {
|
|
| 130 |
- 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 131 |
- 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 132 |
- 4, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
|
| 133 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 134 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 135 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 136 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 137 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 138 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 139 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 140 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, |
|
| 141 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 142 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 143 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 144 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 145 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 146 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 147 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 148 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 149 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 150 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 151 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 152 |
- 3, 0, 1, 2, 3, 4, 5, 16, |
|
| 153 |
- 2, 0, 1, 16, |
|
| 154 |
- 2, 0, 1, 16, |
|
| 155 |
- 2, 0, 1, 16, |
|
| 156 |
- 2, 0, 1, 16, |
|
| 157 |
- 2, 0, 1, 16, |
|
| 158 |
- 2, 0, 1, 16, |
|
| 159 |
- 2, 0, 1, 16, |
|
| 160 |
-}; |
|
| 161 |
- |
|
| 162 |
-static const unsigned char alloc_table_2[] = {
|
|
| 163 |
- 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 164 |
- 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 165 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 166 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 167 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 168 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 169 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 170 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 171 |
-}; |
|
| 172 |
- |
|
| 173 |
-static const unsigned char alloc_table_3[] = {
|
|
| 174 |
- 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 175 |
- 4, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 176 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 177 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 178 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 179 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 180 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 181 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 182 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 183 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 184 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 185 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 186 |
-}; |
|
| 187 |
- |
|
| 188 |
-static const unsigned char alloc_table_4[] = {
|
|
| 189 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 190 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 191 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 192 |
- 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 193 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 194 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 195 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 196 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 197 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 198 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 199 |
- 3, 0, 1, 3, 4, 5, 6, 7, |
|
| 200 |
- 2, 0, 1, 3, |
|
| 201 |
- 2, 0, 1, 3, |
|
| 202 |
- 2, 0, 1, 3, |
|
| 203 |
- 2, 0, 1, 3, |
|
| 204 |
- 2, 0, 1, 3, |
|
| 205 |
- 2, 0, 1, 3, |
|
| 206 |
- 2, 0, 1, 3, |
|
| 207 |
- 2, 0, 1, 3, |
|
| 208 |
- 2, 0, 1, 3, |
|
| 209 |
- 2, 0, 1, 3, |
|
| 210 |
- 2, 0, 1, 3, |
|
| 211 |
- 2, 0, 1, 3, |
|
| 212 |
- 2, 0, 1, 3, |
|
| 213 |
- 2, 0, 1, 3, |
|
| 214 |
- 2, 0, 1, 3, |
|
| 215 |
- 2, 0, 1, 3, |
|
| 216 |
- 2, 0, 1, 3, |
|
| 217 |
- 2, 0, 1, 3, |
|
| 218 |
- 2, 0, 1, 3, |
|
| 219 |
-}; |
|
| 220 |
- |
|
| 221 |
-const unsigned char *alloc_tables[5] = |
|
| 222 |
-{ alloc_table_0, alloc_table_1, alloc_table_2, alloc_table_3, alloc_table_4, };
|
|
| 223 |
- |
|
| 224 | 27 |
/*******************************************************/ |
| 225 | 28 |
/* layer 3 tables */ |
| 226 | 29 |
|