diff options
author | Robert Swain <robert.swain@gmail.com> | 2008-08-14 14:40:16 +0000 |
---|---|---|
committer | Robert Swain <robert.swain@gmail.com> | 2008-08-14 14:40:16 +0000 |
commit | 69fc4da3606046672340bc81053db30e80dc36d4 (patch) | |
tree | 726e0e654999dbd72bba87c44d4dae90bd979382 /libavcodec | |
parent | ece6b83c3e3da6fc009d3a931e866ffcb966c6ee (diff) | |
download | ffmpeg-69fc4da3606046672340bc81053db30e80dc36d4.tar.gz |
Add declarations for the sine tables used in wma.c (half window sizes: 128,
256, 512, 1024 and 2048) to mdct.c. Make them accessible via dsputil.h. Make
wma.c use these shared tables.
Originally committed as revision 14758 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/dsputil.h | 6 | ||||
-rw-r--r-- | libavcodec/mdct.c | 9 | ||||
-rw-r--r-- | libavcodec/wma.c | 6 |
3 files changed, 17 insertions, 4 deletions
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h index eb1ea4f4ee..0beef799d4 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -702,6 +702,12 @@ void ff_kbd_window_init(float *window, float alpha, int n); * @param n size of half window */ void ff_sine_window_init(float *window, int n); +extern float ff_sine_128 [ 128]; +extern float ff_sine_256 [ 256]; +extern float ff_sine_512 [ 512]; +extern float ff_sine_1024[1024]; +extern float ff_sine_2048[2048]; +extern float *ff_sine_windows[5]; int ff_mdct_init(MDCTContext *s, int nbits, int inverse); void ff_imdct_calc_c(MDCTContext *s, FFTSample *output, const FFTSample *input); diff --git a/libavcodec/mdct.c b/libavcodec/mdct.c index f4e2a93a6a..2d49520a9f 100644 --- a/libavcodec/mdct.c +++ b/libavcodec/mdct.c @@ -48,6 +48,15 @@ void ff_kbd_window_init(float *window, float alpha, int n) window[i] = sqrt(local_window[i] / sum); } +float ff_sine_128 [ 128]; +float ff_sine_256 [ 256]; +float ff_sine_512 [ 512]; +float ff_sine_1024[1024]; +float ff_sine_2048[2048]; +float *ff_sine_windows[5] = { + ff_sine_128, ff_sine_256, ff_sine_512, ff_sine_1024, ff_sine_2048, +}; + // Generate a sine window. void ff_sine_window_init(float *window, int n) { int i; diff --git a/libavcodec/wma.c b/libavcodec/wma.c index c0261b1175..423852bc3a 100644 --- a/libavcodec/wma.c +++ b/libavcodec/wma.c @@ -66,7 +66,6 @@ int ff_wma_init(AVCodecContext * avctx, int flags2) { WMACodecContext *s = avctx->priv_data; int i; - float *window; float bps1, high_freq; volatile float bps; int sample_rate1; @@ -303,9 +302,8 @@ int ff_wma_init(AVCodecContext * avctx, int flags2) for(i = 0; i < s->nb_block_sizes; i++) { int n; n = 1 << (s->frame_len_bits - i); - window = av_malloc(sizeof(float) * n); - ff_sine_window_init(window, n); - s->windows[i] = window; + ff_sine_window_init(ff_sine_windows[i], n); + s->windows[i] = ff_sine_windows[i]; } s->reset_block_lengths = 1; |