From ac05f9030ed4baae317071d0321c91afabaf1080 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Wed, 5 Jan 2011 20:35:36 +0000 Subject: Convert floating-point MDCT coefficients to 24-bit fixed-point all at once instead of doing it separately in 2 different functions. This makes float AC-3 encoding approx. 3-7% faster overall. Also, the coefficient conversion can now be easily SIMD-optimized. Originally committed as revision 26232 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/ac3enc_float.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libavcodec/ac3enc_float.c') diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index 82d806bc06..f3246362e7 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -102,6 +102,17 @@ static int normalize_samples(AC3EncodeContext *s) } +/** + * Scale MDCT coefficients from float to 24-bit fixed-point. + */ +static void scale_coefficients(AC3EncodeContext *s) +{ + int i; + for (i = 0; i < AC3_MAX_COEFS * AC3_MAX_BLOCKS * s->channels; i++) + s->fixed_coef_buffer[i] = SCALE_FLOAT(s->mdct_coef_buffer[i], 24); +} + + AVCodec ac3_encoder = { "ac3", AVMEDIA_TYPE_AUDIO, -- cgit v1.2.3