[FFmpeg-cvslog] r14758 - in trunk/libavcodec: dsputil.h mdct.c wma.c
superdump
subversion
Thu Aug 14 16:40:16 CEST 2008
Author: superdump
Date: Thu Aug 14 16:40:16 2008
New Revision: 14758
Log:
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.
Modified:
trunk/libavcodec/dsputil.h
trunk/libavcodec/mdct.c
trunk/libavcodec/wma.c
Modified: trunk/libavcodec/dsputil.h
==============================================================================
--- trunk/libavcodec/dsputil.h (original)
+++ trunk/libavcodec/dsputil.h Thu Aug 14 16:40:16 2008
@@ -702,6 +702,12 @@ void ff_kbd_window_init(float *window, f
* @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);
Modified: trunk/libavcodec/mdct.c
==============================================================================
--- trunk/libavcodec/mdct.c (original)
+++ trunk/libavcodec/mdct.c Thu Aug 14 16:40:16 2008
@@ -48,6 +48,15 @@ void ff_kbd_window_init(float *window, f
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;
Modified: trunk/libavcodec/wma.c
==============================================================================
--- trunk/libavcodec/wma.c (original)
+++ trunk/libavcodec/wma.c Thu Aug 14 16:40:16 2008
@@ -66,7 +66,6 @@ int ff_wma_init(AVCodecContext * avctx,
{
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,
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;
More information about the ffmpeg-cvslog
mailing list