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/trunktags/v0.5
@@ -702,6 +702,12 @@ void ff_kbd_window_init(float *window, float alpha, int n); | |||||
* @param n size of half window | * @param n size of half window | ||||
*/ | */ | ||||
void ff_sine_window_init(float *window, int n); | 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); | int ff_mdct_init(MDCTContext *s, int nbits, int inverse); | ||||
void ff_imdct_calc_c(MDCTContext *s, FFTSample *output, const FFTSample *input); | void ff_imdct_calc_c(MDCTContext *s, FFTSample *output, const FFTSample *input); | ||||
@@ -48,6 +48,15 @@ void ff_kbd_window_init(float *window, float alpha, int n) | |||||
window[i] = sqrt(local_window[i] / sum); | 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. | // Generate a sine window. | ||||
void ff_sine_window_init(float *window, int n) { | void ff_sine_window_init(float *window, int n) { | ||||
int i; | int i; | ||||
@@ -66,7 +66,6 @@ int ff_wma_init(AVCodecContext * avctx, int flags2) | |||||
{ | { | ||||
WMACodecContext *s = avctx->priv_data; | WMACodecContext *s = avctx->priv_data; | ||||
int i; | int i; | ||||
float *window; | |||||
float bps1, high_freq; | float bps1, high_freq; | ||||
volatile float bps; | volatile float bps; | ||||
int sample_rate1; | int sample_rate1; | ||||
@@ -303,9 +302,8 @@ int ff_wma_init(AVCodecContext * avctx, int flags2) | |||||
for(i = 0; i < s->nb_block_sizes; i++) { | for(i = 0; i < s->nb_block_sizes; i++) { | ||||
int n; | int n; | ||||
n = 1 << (s->frame_len_bits - i); | 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; | s->reset_block_lengths = 1; | ||||