summaryrefslogtreecommitdiff
path: root/libavcodec/fft_template.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/fft_template.c')
-rw-r--r--libavcodec/fft_template.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/libavcodec/fft_template.c b/libavcodec/fft_template.c
index 3abf94870d..23ea453938 100644
--- a/libavcodec/fft_template.c
+++ b/libavcodec/fft_template.c
@@ -228,8 +228,6 @@ static void fft_calc_c(FFTContext *s, FFTComplex *z) {
int n4, n2, n34;
FFTSample tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8;
FFTComplex *tmpz;
- FFTSample w_re, w_im;
- const FFTSample *w_re_ptr, *w_im_ptr;
const int fft_size = (1 << s->nbits);
int64_t accu;
@@ -322,6 +320,8 @@ static void fft_calc_c(FFTContext *s, FFTComplex *z) {
num_transforms = (num_transforms >> 1) | 1;
for (n=0; n<num_transforms; n++){
+ const FFTSample *w_re_ptr = ff_w_tab_sr + step;
+ const FFTSample *w_im_ptr = ff_w_tab_sr + MAX_FFT_SIZE/(4*16) - step;
offset = ff_fft_offsets_lut[n] << nbits;
tmpz = z + offset;
@@ -339,12 +339,9 @@ static void fft_calc_c(FFTContext *s, FFTComplex *z) {
tmpz[n34].im = tmpz[n4].im + tmp1;
tmpz[ n4].im = tmpz[n4].im - tmp1;
- w_re_ptr = ff_w_tab_sr + step;
- w_im_ptr = ff_w_tab_sr + MAX_FFT_SIZE/(4*16) - step;
-
for (i=1; i<n4; i++){
- w_re = w_re_ptr[0];
- w_im = w_im_ptr[0];
+ FFTSample w_re = w_re_ptr[0];
+ FFTSample w_im = w_im_ptr[0];
accu = (int64_t)w_re*tmpz[ n2+i].re;
accu += (int64_t)w_im*tmpz[ n2+i].im;
tmp1 = (int32_t)((accu + 0x40000000) >> 31);