Mercurial > libavcodec.hg
comparison fft-test.c @ 7546:97383e012cb9 libavcodec
remove mdct tmp buffer
author | lorenm |
---|---|
date | Tue, 12 Aug 2008 00:36:36 +0000 |
parents | be322248a318 |
children | e9d9d946f213 |
comparison
equal
deleted
inserted
replaced
7545:2dca9201c400 | 7546:97383e012cb9 |
---|---|
175 | 175 |
176 | 176 |
177 int main(int argc, char **argv) | 177 int main(int argc, char **argv) |
178 { | 178 { |
179 FFTComplex *tab, *tab1, *tab_ref; | 179 FFTComplex *tab, *tab1, *tab_ref; |
180 FFTSample *tabtmp, *tab2; | 180 FFTSample *tab2; |
181 int it, i, c; | 181 int it, i, c; |
182 int do_speed = 0; | 182 int do_speed = 0; |
183 int do_mdct = 0; | 183 int do_mdct = 0; |
184 int do_inverse = 0; | 184 int do_inverse = 0; |
185 FFTContext s1, *s = &s1; | 185 FFTContext s1, *s = &s1; |
212 | 212 |
213 fft_size = 1 << fft_nbits; | 213 fft_size = 1 << fft_nbits; |
214 tab = av_malloc(fft_size * sizeof(FFTComplex)); | 214 tab = av_malloc(fft_size * sizeof(FFTComplex)); |
215 tab1 = av_malloc(fft_size * sizeof(FFTComplex)); | 215 tab1 = av_malloc(fft_size * sizeof(FFTComplex)); |
216 tab_ref = av_malloc(fft_size * sizeof(FFTComplex)); | 216 tab_ref = av_malloc(fft_size * sizeof(FFTComplex)); |
217 tabtmp = av_malloc(fft_size / 2 * sizeof(FFTSample)); | |
218 tab2 = av_malloc(fft_size * sizeof(FFTSample)); | 217 tab2 = av_malloc(fft_size * sizeof(FFTSample)); |
219 | 218 |
220 if (do_mdct) { | 219 if (do_mdct) { |
221 if (do_inverse) | 220 if (do_inverse) |
222 av_log(NULL, AV_LOG_INFO,"IMDCT"); | 221 av_log(NULL, AV_LOG_INFO,"IMDCT"); |
244 av_log(NULL, AV_LOG_INFO,"Checking...\n"); | 243 av_log(NULL, AV_LOG_INFO,"Checking...\n"); |
245 | 244 |
246 if (do_mdct) { | 245 if (do_mdct) { |
247 if (do_inverse) { | 246 if (do_inverse) { |
248 imdct_ref((float *)tab_ref, (float *)tab1, fft_nbits); | 247 imdct_ref((float *)tab_ref, (float *)tab1, fft_nbits); |
249 ff_imdct_calc(m, tab2, (float *)tab1, tabtmp); | 248 ff_imdct_calc(m, tab2, (float *)tab1); |
250 check_diff((float *)tab_ref, tab2, fft_size); | 249 check_diff((float *)tab_ref, tab2, fft_size); |
251 } else { | 250 } else { |
252 mdct_ref((float *)tab_ref, (float *)tab1, fft_nbits); | 251 mdct_ref((float *)tab_ref, (float *)tab1, fft_nbits); |
253 | 252 |
254 ff_mdct_calc(m, tab2, (float *)tab1, tabtmp); | 253 ff_mdct_calc(m, tab2, (float *)tab1); |
255 | 254 |
256 check_diff((float *)tab_ref, tab2, fft_size / 2); | 255 check_diff((float *)tab_ref, tab2, fft_size / 2); |
257 } | 256 } |
258 } else { | 257 } else { |
259 memcpy(tab, tab1, fft_size * sizeof(FFTComplex)); | 258 memcpy(tab, tab1, fft_size * sizeof(FFTComplex)); |
276 for(;;) { | 275 for(;;) { |
277 time_start = gettime(); | 276 time_start = gettime(); |
278 for(it=0;it<nb_its;it++) { | 277 for(it=0;it<nb_its;it++) { |
279 if (do_mdct) { | 278 if (do_mdct) { |
280 if (do_inverse) { | 279 if (do_inverse) { |
281 ff_imdct_calc(m, (float *)tab, (float *)tab1, tabtmp); | 280 ff_imdct_calc(m, (float *)tab, (float *)tab1); |
282 } else { | 281 } else { |
283 ff_mdct_calc(m, (float *)tab, (float *)tab1, tabtmp); | 282 ff_mdct_calc(m, (float *)tab, (float *)tab1); |
284 } | 283 } |
285 } else { | 284 } else { |
286 memcpy(tab, tab1, fft_size * sizeof(FFTComplex)); | 285 memcpy(tab, tab1, fft_size * sizeof(FFTComplex)); |
287 ff_fft_calc(s, tab); | 286 ff_fft_calc(s, tab); |
288 } | 287 } |