comparison mpegaudiodec.c @ 7763:73b10d25cb8d libavcodec

Remove debuging junk that probably hasnt been used by anyone since years.
author michael
date Sun, 31 Aug 2008 20:26:28 +0000
parents 2240c6340eac
children 8195c970d077
comparison
equal deleted inserted replaced
7762:e2573d045e79 7763:73b10d25cb8d
22 /** 22 /**
23 * @file mpegaudiodec.c 23 * @file mpegaudiodec.c
24 * MPEG Audio decoder. 24 * MPEG Audio decoder.
25 */ 25 */
26 26
27 //#define DEBUG
28 #include "avcodec.h" 27 #include "avcodec.h"
29 #include "bitstream.h" 28 #include "bitstream.h"
30 #include "dsputil.h" 29 #include "dsputil.h"
31 30
32 /* 31 /*
428 m = (uint32_t)(fm*(1LL<<31) + 0.5); 427 m = (uint32_t)(fm*(1LL<<31) + 0.5);
429 e+= FRAC_BITS - 31 + 5 - 100; 428 e+= FRAC_BITS - 31 + 5 - 100;
430 429
431 /* normalized to FRAC_BITS */ 430 /* normalized to FRAC_BITS */
432 table_4_3_value[i] = m; 431 table_4_3_value[i] = m;
433 // av_log(NULL, AV_LOG_DEBUG, "%d %d %f\n", i, m, pow((double)i, 4.0 / 3.0));
434 table_4_3_exp[i] = -e; 432 table_4_3_exp[i] = -e;
435 } 433 }
436 for(i=0; i<512*16; i++){ 434 for(i=0; i<512*16; i++){
437 int exponent= (i>>4); 435 int exponent= (i>>4);
438 double f= pow(i&15, 4.0 / 3.0) * pow(2, (exponent-400)*0.25 + FRAC_BITS + 5); 436 double f= pow(i&15, 4.0 / 3.0) * pow(2, (exponent-400)*0.25 + FRAC_BITS + 5);
483 csa_table[i][3] = FIXHR(ca/4) - FIXHR(cs/4); 481 csa_table[i][3] = FIXHR(ca/4) - FIXHR(cs/4);
484 csa_table_float[i][0] = cs; 482 csa_table_float[i][0] = cs;
485 csa_table_float[i][1] = ca; 483 csa_table_float[i][1] = ca;
486 csa_table_float[i][2] = ca + cs; 484 csa_table_float[i][2] = ca + cs;
487 csa_table_float[i][3] = ca - cs; 485 csa_table_float[i][3] = ca - cs;
488 // printf("%d %d %d %d\n", FIX(cs), FIX(cs-1), FIX(ca), FIX(cs)-FIX(ca));
489 // av_log(NULL, AV_LOG_DEBUG,"%f %f %f %f\n", cs, ca, ca+cs, ca-cs);
490 } 486 }
491 487
492 /* compute mdct windows */ 488 /* compute mdct windows */
493 for(i=0;i<36;i++) { 489 for(i=0;i<36;i++) {
494 for(j=0; j<4; j++){ 490 for(j=0; j<4; j++){
512 508
513 if(j==2) 509 if(j==2)
514 mdct_win[j][i/3] = FIXHR((d / (1<<5))); 510 mdct_win[j][i/3] = FIXHR((d / (1<<5)));
515 else 511 else
516 mdct_win[j][i ] = FIXHR((d / (1<<5))); 512 mdct_win[j][i ] = FIXHR((d / (1<<5)));
517 // av_log(NULL, AV_LOG_DEBUG, "%2d %d %f\n", i,j,d / (1<<5));
518 } 513 }
519 } 514 }
520 515
521 /* NOTE: we do frequency inversion adter the MDCT by changing 516 /* NOTE: we do frequency inversion adter the MDCT by changing
522 the sign of the right window coefs */ 517 the sign of the right window coefs */
525 mdct_win[j + 4][i] = mdct_win[j][i]; 520 mdct_win[j + 4][i] = mdct_win[j][i];
526 mdct_win[j + 4][i + 1] = -mdct_win[j][i + 1]; 521 mdct_win[j + 4][i + 1] = -mdct_win[j][i + 1];
527 } 522 }
528 } 523 }
529 524
530 #if defined(DEBUG)
531 for(j=0;j<8;j++) {
532 av_log(avctx, AV_LOG_DEBUG, "win%d=\n", j);
533 for(i=0;i<36;i++)
534 av_log(avctx, AV_LOG_DEBUG, "%f, ", (double)mdct_win[j][i] / FRAC_ONE);
535 av_log(avctx, AV_LOG_DEBUG, "\n");
536 }
537 #endif
538 init = 1; 525 init = 1;
539 } 526 }
540 527
541 #ifdef DEBUG
542 s->frame_count = 0;
543 #endif
544 if (avctx->codec_id == CODEC_ID_MP3ADU) 528 if (avctx->codec_id == CODEC_ID_MP3ADU)
545 s->adu_mode = 1; 529 s->adu_mode = 1;
546 return 0; 530 return 0;
547 } 531 }
548 532
1249 bit_alloc[0][i] = v; 1233 bit_alloc[0][i] = v;
1250 bit_alloc[1][i] = v; 1234 bit_alloc[1][i] = v;
1251 j += 1 << bit_alloc_bits; 1235 j += 1 << bit_alloc_bits;
1252 } 1236 }
1253 1237
1254 #ifdef DEBUG
1255 {
1256 for(ch=0;ch<s->nb_channels;ch++) {
1257 for(i=0;i<sblimit;i++)
1258 dprintf(s->avctx, " %d", bit_alloc[ch][i]);
1259 dprintf(s->avctx, "\n");
1260 }
1261 }
1262 #endif
1263
1264 /* scale codes */ 1238 /* scale codes */
1265 for(i=0;i<sblimit;i++) { 1239 for(i=0;i<sblimit;i++) {
1266 for(ch=0;ch<s->nb_channels;ch++) { 1240 for(ch=0;ch<s->nb_channels;ch++) {
1267 if (bit_alloc[ch][i]) 1241 if (bit_alloc[ch][i])
1268 scale_code[ch][i] = get_bits(&s->gb, 2); 1242 scale_code[ch][i] = get_bits(&s->gb, 2);
1298 break; 1272 break;
1299 } 1273 }
1300 } 1274 }
1301 } 1275 }
1302 } 1276 }
1303
1304 #ifdef DEBUG
1305 for(ch=0;ch<s->nb_channels;ch++) {
1306 for(i=0;i<sblimit;i++) {
1307 if (bit_alloc[ch][i]) {
1308 sf = scale_factors[ch][i];
1309 dprintf(s->avctx, " %d %d %d", sf[0], sf[1], sf[2]);
1310 } else {
1311 dprintf(s->avctx, " -");
1312 }
1313 }
1314 dprintf(s->avctx, "\n");
1315 }
1316 #endif
1317 1277
1318 /* samples */ 1278 /* samples */
1319 for(k=0;k<3;k++) { 1279 for(k=0;k<3;k++) {
1320 for(l=0;l<12;l+=3) { 1280 for(l=0;l<12;l+=3) {
1321 j = 0; 1281 j = 0;
1988 } 1948 }
1989 buf += 18; 1949 buf += 18;
1990 } 1950 }
1991 } 1951 }
1992 1952
1993 #if defined(DEBUG)
1994 void sample_dump(int fnum, int32_t *tab, int n)
1995 {
1996 static FILE *files[16], *f;
1997 char buf[512];
1998 int i;
1999 int32_t v;
2000
2001 f = files[fnum];
2002 if (!f) {
2003 snprintf(buf, sizeof(buf), "/tmp/out%d.%s.pcm",
2004 fnum,
2005 #ifdef USE_HIGHPRECISION
2006 "hp"
2007 #else
2008 "lp"
2009 #endif
2010 );
2011 f = fopen(buf, "w");
2012 if (!f)
2013 return;
2014 files[fnum] = f;
2015 }
2016
2017 if (fnum == 0) {
2018 static int pos = 0;
2019 av_log(NULL, AV_LOG_DEBUG, "pos=%d\n", pos);
2020 for(i=0;i<n;i++) {
2021 av_log(NULL, AV_LOG_DEBUG, " %0.4f", (double)tab[i] / FRAC_ONE);
2022 if ((i % 18) == 17)
2023 av_log(NULL, AV_LOG_DEBUG, "\n");
2024 }
2025 pos += n;
2026 }
2027 for(i=0;i<n;i++) {
2028 /* normalize to 23 frac bits */
2029 v = tab[i] << (23 - FRAC_BITS);
2030 fwrite(&v, 1, sizeof(int32_t), f);
2031 }
2032 }
2033 #endif
2034
2035
2036 /* main layer3 decoding function */ 1953 /* main layer3 decoding function */
2037 static int mp_decode_layer3(MPADecodeContext *s) 1954 static int mp_decode_layer3(MPADecodeContext *s)
2038 { 1955 {
2039 int nb_granules, main_data_begin, private_bits; 1956 int nb_granules, main_data_begin, private_bits;
2040 int gr, ch, blocksplit_flag, i, j, k, n, bits_pos; 1957 int gr, ch, blocksplit_flag, i, j, k, n, bits_pos;
2199 } 2116 }
2200 } 2117 }
2201 } 2118 }
2202 g->scale_factors[j++] = 0; 2119 g->scale_factors[j++] = 0;
2203 } 2120 }
2204 #if defined(DEBUG)
2205 {
2206 dprintf(s->avctx, "scfsi=%x gr=%d ch=%d scale_factors:\n",
2207 g->scfsi, gr, ch);
2208 for(i=0;i<j;i++)
2209 dprintf(s->avctx, " %d", g->scale_factors[i]);
2210 dprintf(s->avctx, "\n");
2211 }
2212 #endif
2213 } else { 2121 } else {
2214 int tindex, tindex2, slen[4], sl, sf; 2122 int tindex, tindex2, slen[4], sl, sf;
2215 2123
2216 /* LSF scale factors */ 2124 /* LSF scale factors */
2217 if (g->block_type == 2) { 2125 if (g->block_type == 2) {
2261 } 2169 }
2262 } 2170 }
2263 /* XXX: should compute exact size */ 2171 /* XXX: should compute exact size */
2264 for(;j<40;j++) 2172 for(;j<40;j++)
2265 g->scale_factors[j] = 0; 2173 g->scale_factors[j] = 0;
2266 #if defined(DEBUG)
2267 {
2268 dprintf(s->avctx, "gr=%d ch=%d scale_factors:\n",
2269 gr, ch);
2270 for(i=0;i<40;i++)
2271 dprintf(s->avctx, " %d", g->scale_factors[i]);
2272 dprintf(s->avctx, "\n");
2273 }
2274 #endif
2275 } 2174 }
2276 2175
2277 exponents_from_scale_factors(s, g, exponents); 2176 exponents_from_scale_factors(s, g, exponents);
2278 2177
2279 /* read Huffman coded residue */ 2178 /* read Huffman coded residue */
2280 huffman_decode(s, g, exponents, bits_pos + g->part2_3_length); 2179 huffman_decode(s, g, exponents, bits_pos + g->part2_3_length);
2281 #if defined(DEBUG)
2282 sample_dump(0, g->sb_hybrid, 576);
2283 #endif
2284 } /* ch */ 2180 } /* ch */
2285 2181
2286 if (s->nb_channels == 2) 2182 if (s->nb_channels == 2)
2287 compute_stereo(s, &granules[0][gr], &granules[1][gr]); 2183 compute_stereo(s, &granules[0][gr], &granules[1][gr]);
2288 2184
2289 for(ch=0;ch<s->nb_channels;ch++) { 2185 for(ch=0;ch<s->nb_channels;ch++) {
2290 g = &granules[ch][gr]; 2186 g = &granules[ch][gr];
2291 2187
2292 reorder_block(s, g); 2188 reorder_block(s, g);
2293 #if defined(DEBUG)
2294 sample_dump(0, g->sb_hybrid, 576);
2295 #endif
2296 s->compute_antialias(s, g); 2189 s->compute_antialias(s, g);
2297 #if defined(DEBUG)
2298 sample_dump(1, g->sb_hybrid, 576);
2299 #endif
2300 compute_imdct(s, g, &s->sb_samples[ch][18 * gr][0], s->mdct_buf[ch]); 2190 compute_imdct(s, g, &s->sb_samples[ch][18 * gr][0], s->mdct_buf[ch]);
2301 #if defined(DEBUG)
2302 sample_dump(2, &s->sb_samples[ch][18 * gr][0], 576);
2303 #endif
2304 } 2191 }
2305 } /* gr */ 2192 } /* gr */
2306 if(get_bits_count(&s->gb)<0) 2193 if(get_bits_count(&s->gb)<0)
2307 skip_bits_long(&s->gb, -get_bits_count(&s->gb)); 2194 skip_bits_long(&s->gb, -get_bits_count(&s->gb));
2308 return nb_granules * 18; 2195 return nb_granules * 18;
2360 memcpy(s->last_buf + s->last_buf_size, s->gb.buffer + buf_size - HEADER_SIZE - i, i); 2247 memcpy(s->last_buf + s->last_buf_size, s->gb.buffer + buf_size - HEADER_SIZE - i, i);
2361 s->last_buf_size += i; 2248 s->last_buf_size += i;
2362 2249
2363 break; 2250 break;
2364 } 2251 }
2365 #if defined(DEBUG) 2252
2366 for(i=0;i<nb_frames;i++) {
2367 for(ch=0;ch<s->nb_channels;ch++) {
2368 int j;
2369 dprintf(s->avctx, "%d-%d:", i, ch);
2370 for(j=0;j<SBLIMIT;j++)
2371 dprintf(s->avctx, " %0.6f", (double)s->sb_samples[ch][i][j] / FRAC_ONE);
2372 dprintf(s->avctx, "\n");
2373 }
2374 }
2375 #endif
2376 /* apply the synthesis filter */ 2253 /* apply the synthesis filter */
2377 for(ch=0;ch<s->nb_channels;ch++) { 2254 for(ch=0;ch<s->nb_channels;ch++) {
2378 samples_ptr = samples + ch; 2255 samples_ptr = samples + ch;
2379 for(i=0;i<nb_frames;i++) { 2256 for(i=0;i<nb_frames;i++) {
2380 ff_mpa_synth_filter(s->synth_buf[ch], &(s->synth_buf_offset[ch]), 2257 ff_mpa_synth_filter(s->synth_buf[ch], &(s->synth_buf_offset[ch]),
2382 samples_ptr, s->nb_channels, 2259 samples_ptr, s->nb_channels,
2383 s->sb_samples[ch][i]); 2260 s->sb_samples[ch][i]);
2384 samples_ptr += 32 * s->nb_channels; 2261 samples_ptr += 32 * s->nb_channels;
2385 } 2262 }
2386 } 2263 }
2387 #ifdef DEBUG 2264
2388 s->frame_count++;
2389 #endif
2390 return nb_frames * 32 * sizeof(OUT_INT) * s->nb_channels; 2265 return nb_frames * 32 * sizeof(OUT_INT) * s->nb_channels;
2391 } 2266 }
2392 2267
2393 static int decode_frame(AVCodecContext * avctx, 2268 static int decode_frame(AVCodecContext * avctx,
2394 void *data, int *data_size, 2269 void *data, int *data_size,