diff options
Diffstat (limited to 'src/libffmpeg/libavcodec/wmadec.c')
-rw-r--r-- | src/libffmpeg/libavcodec/wmadec.c | 117 |
1 files changed, 37 insertions, 80 deletions
diff --git a/src/libffmpeg/libavcodec/wmadec.c b/src/libffmpeg/libavcodec/wmadec.c index 8d3763213..15b15f23f 100644 --- a/src/libffmpeg/libavcodec/wmadec.c +++ b/src/libffmpeg/libavcodec/wmadec.c @@ -25,9 +25,6 @@ #include "avcodec.h" #include "dsputil.h" -//#define DEBUG_PARAMS -//#define DEBUG_TRACE - /* size of blocks */ #define BLOCK_MIN_BITS 7 #define BLOCK_MAX_BITS 11 @@ -114,6 +111,10 @@ typedef struct WMADecodeContext { float lsp_pow_e_table[256]; float lsp_pow_m_table1[(1 << LSP_POW_BITS)]; float lsp_pow_m_table2[(1 << LSP_POW_BITS)]; + +#ifdef TRACE + int frame_count; +#endif } WMADecodeContext; typedef struct CoefVLCTable { @@ -127,57 +128,18 @@ static void wma_lsp_to_curve_init(WMADecodeContext *s, int frame_len); #include "wmadata.h" -#ifdef DEBUG_TRACE -#include <stdarg.h> -int frame_count; - -static FILE *flog; - -void trace(const char *fmt, ...) -{ - va_list ap; - - - if (!flog) { - flog = fopen("/tmp/out.log", "w"); - setlinebuf(flog); - } - - va_start(ap, fmt); - vfprintf(flog, fmt, ap); - va_end(ap); -} - -#define get_bits(s, n) get_bits_trace(s, n) -#define get_vlc(s, vlc) get_vlc_trace(s, vlc) - -unsigned int get_bits_trace(GetBitContext *s, int n) -{ - unsigned int val; - val = (get_bits)(s, n); - trace("get_bits(%d) : 0x%x\n", n, val); - return val; -} - -static int get_vlc_trace(GetBitContext *s, VLC *vlc) -{ - int code; - code = (get_vlc)(s, vlc); - trace("get_vlc() : %d\n", code); - return code; -} - +#ifdef TRACE static void dump_shorts(const char *name, const short *tab, int n) { int i; - trace("%s[%d]:\n", name, n); + tprintf("%s[%d]:\n", name, n); for(i=0;i<n;i++) { if ((i & 7) == 0) - trace("%4d: ", i); - trace(" %5d.0", tab[i]); + tprintf("%4d: ", i); + tprintf(" %5d.0", tab[i]); if ((i & 7) == 7) - trace("\n"); + tprintf("\n"); } } @@ -185,22 +147,17 @@ static void dump_floats(const char *name, int prec, const float *tab, int n) { int i; - trace("%s[%d]:\n", name, n); + tprintf("%s[%d]:\n", name, n); for(i=0;i<n;i++) { if ((i & 7) == 0) - trace("%4d: ", i); - trace(" %8.*f", prec, tab[i]); + tprintf("%4d: ", i); + tprintf(" %8.*f", prec, tab[i]); if ((i & 7) == 7) - trace("\n"); + tprintf("\n"); } if ((i & 7) != 0) - trace("\n"); + tprintf("\n"); } - -#else - -#define trace(fmt, args...) - #endif /* XXX: use same run/length optimization as mpeg decoders */ @@ -359,16 +316,14 @@ static int wma_decode_init(AVCodecContext * avctx) high_freq = high_freq * 0.5; } } -#ifdef DEBUG_PARAMS - printf("flags1=0x%x flags2=0x%x\n", flags1, flags2); - printf("version=%d channels=%d sample_rate=%d bitrate=%d block_align=%d\n", + dprintf("flags1=0x%x flags2=0x%x\n", flags1, flags2); + dprintf("version=%d channels=%d sample_rate=%d bitrate=%d block_align=%d\n", s->version, s->nb_channels, s->sample_rate, s->bit_rate, s->block_align); - printf("bps=%f bps1=%f high_freq=%f bitoffset=%d\n", + dprintf("bps=%f bps1=%f high_freq=%f bitoffset=%d\n", bps, bps1, high_freq, s->byte_offset_bits); - printf("use_noise_coding=%d use_exp_vlc=%d nb_block_sizes=%d\n", + dprintf("use_noise_coding=%d use_exp_vlc=%d nb_block_sizes=%d\n", s->use_noise_coding, s->use_exp_vlc, s->nb_block_sizes); -#endif /* compute the scale factor band sizes for each MDCT block size */ { @@ -458,28 +413,28 @@ static int wma_decode_init(AVCodecContext * avctx) } s->exponent_high_sizes[k] = j; #if 0 - trace("%5d: coefs_end=%d high_band_start=%d nb_high_bands=%d: ", + tprintf("%5d: coefs_end=%d high_band_start=%d nb_high_bands=%d: ", s->frame_len >> k, s->coefs_end[k], s->high_band_start[k], s->exponent_high_sizes[k]); for(j=0;j<s->exponent_high_sizes[k];j++) - trace(" %d", s->exponent_high_bands[k][j]); - trace("\n"); + tprintf(" %d", s->exponent_high_bands[k][j]); + tprintf("\n"); #endif } } -#ifdef DEBUG_TRACE +#ifdef TRACE { int i, j; for(i = 0; i < s->nb_block_sizes; i++) { - trace("%5d: n=%2d:", + tprintf("%5d: n=%2d:", s->frame_len >> i, s->exponent_sizes[i]); for(j=0;j<s->exponent_sizes[i];j++) - trace(" %d", s->exponent_bands[i][j]); - trace("\n"); + tprintf(" %d", s->exponent_bands[i][j]); + tprintf("\n"); } } #endif @@ -511,7 +466,7 @@ static int wma_decode_init(AVCodecContext * avctx) else s->noise_mult = 0.04; -#if defined(DEBUG_TRACE) +#ifdef TRACE for(i=0;i<NOISE_TAB_SIZE;i++) s->noise_table[i] = 1.0 * s->noise_mult; #else @@ -741,7 +696,9 @@ static int wma_decode_block(WMADecodeContext *s) int nb_coefs[MAX_CHANNELS]; float mdct_norm; - trace("***decode_block: %d:%d\n", frame_count - 1, s->block_num); +#ifdef TRACE + tprintf("***decode_block: %d:%d\n", s->frame_count - 1, s->block_num); +#endif /* compute current block length */ if (s->use_variable_block_len) { @@ -987,7 +944,7 @@ static int wma_decode_block(WMADecodeContext *s) } exp_power[j] = e2 / n; last_high_band = j; - trace("%d: power=%f (%d)\n", j, exp_power[j], n); + tprintf("%d: power=%f (%d)\n", j, exp_power[j], n); } exp_ptr += n; } @@ -1045,7 +1002,7 @@ static int wma_decode_block(WMADecodeContext *s) } } -#ifdef DEBUG_TRACE +#ifdef TRACE for(ch = 0; ch < s->nb_channels; ch++) { if (s->channel_coded[ch]) { dump_floats("exponents", 3, s->exponents[ch], s->block_len); @@ -1062,9 +1019,7 @@ static int wma_decode_block(WMADecodeContext *s) /* no need to optimize this case because it should almost never happen */ if (!s->channel_coded[0]) { -#ifdef DEBUG_TRACE - trace("rare ms-stereo case happened\n"); -#endif + tprintf("rare ms-stereo case happened\n"); memset(s->coefs[0], 0, sizeof(float) * s->block_len); s->channel_coded[0] = 1; } @@ -1176,7 +1131,9 @@ static int wma_decode_frame(WMADecodeContext *s, int16_t *samples) int16_t *ptr; float *iptr; - trace("***decode_frame: %d size=%d\n", frame_count++, s->frame_len); +#ifdef TRACE + tprintf("***decode_frame: %d size=%d\n", s->frame_count++, s->frame_len); +#endif /* read each block */ s->block_num = 0; @@ -1213,7 +1170,7 @@ static int wma_decode_frame(WMADecodeContext *s, int16_t *samples) s->frame_len * sizeof(float)); } -#ifdef DEBUG_TRACE +#ifdef TRACE dump_shorts("samples", samples, n * s->nb_channels); #endif return 0; @@ -1228,7 +1185,7 @@ static int wma_decode_superframe(AVCodecContext *avctx, uint8_t *q; int16_t *samples; - trace("***decode_superframe:\n"); + tprintf("***decode_superframe:\n"); samples = data; |