diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2007-07-14 16:00:05 +0000 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2007-07-14 16:00:05 +0000 |
commit | 262d8702a9782d3f09f218bca39e6e0cb26302c0 (patch) | |
tree | 09b328d1619eb6473bd4a138b2a9821cacb77733 /libavcodec | |
parent | 67414da7f7d4960b6dad1a720390b4b007014afc (diff) | |
download | ffmpeg-262d8702a9782d3f09f218bca39e6e0cb26302c0.tar.gz |
AC-3 decoder, soc revision 53, Aug 17 08:53:44 2006 UTC by cloud9
Converted the window from double to float.
Now sound produced is as good as sound produced by liba52.
Originally committed as revision 9661 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/ac3dec.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c index 6ed318f61d..b341cb5d64 100644 --- a/libavcodec/ac3dec.c +++ b/libavcodec/ac3dec.c @@ -224,10 +224,10 @@ static inline int16_t dither_int16(dither_state *state) * Generate a Kaiser Window. */ static void -k_window_init(int alpha, double *window, int n, int iter) +k_window_init(int alpha, float *window, int n, int iter) { int j, k; - double a, x; + float a, x; a = alpha * M_PI / n; a = a*a; for(k=0; k<n; k++) { @@ -247,10 +247,10 @@ k_window_init(int alpha, double *window, int n, int iter) * @param iter number of iterations to use in BesselI0 */ static void -kbd_window_init(int alpha, double *window, int n, int iter) +kbd_window_init(int alpha, float *window, int n, int iter) { int k, n2; - double *kwindow; + float *kwindow; n2 = n >> 1; kwindow = &window[n2]; @@ -319,7 +319,6 @@ static void generate_quantizers_table_3(int16_t quantizers[], int level, int len static void ac3_tables_init(void) { int i, j, k, l, v; - float alpha; /* compute bndtab and masktab from bandsz */ k = 0; l = 0; @@ -376,19 +375,6 @@ static void ac3_tables_init(void) //for level-15 quantizers generate_quantizers_table(l15_quantizers, 15, 15); - /* Twiddle Factors for IMDCT. */ - for(i = 0; i < N / 4; i++) { - alpha = 2 * M_PI * (8 * i + 1) / (8 * N); - x_cos1[i] = -cos(alpha); - x_sin1[i] = -sin(alpha); - } - - for (i = 0; i < N / 8; i++) { - alpha = 2 * M_PI * (8 * i + 1) / (4 * N); - x_cos2[i] = -cos(alpha); - x_sin2[i] = -sin(alpha); - } - /* Kaiser-Bessel derived window. */ kbd_window_init(5, window, 256, 100); } @@ -1917,8 +1903,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size, AC3DecodeContext *ctx = (AC3DecodeContext *)avctx->priv_data; int frame_start; int16_t *out_samples = (int16_t *)data; - int i, j, k, value, fs_58; - uint16_t crc1; + int i, j, k, value; av_log(NULL, AV_LOG_INFO, "decoding frame %d buf_size = %d\n", frame_count++, buf_size); |