Mercurial > libavcodec.hg
comparison ac3dec.c @ 10529:f8fc0a56745e libavcodec
ac3dec: apply dynamic range compression to correct channels in dual-mono mode.
author | jbr |
---|---|
date | Sat, 14 Nov 2009 00:25:48 +0000 |
parents | 9bf0edb1aeb1 |
children | bcdc5343a577 |
comparison
equal
deleted
inserted
replaced
10528:6fe84da648e2 | 10529:f8fc0a56745e |
---|---|
1165 | 1165 |
1166 /* apply scaling to coefficients (headroom, dynrng) */ | 1166 /* apply scaling to coefficients (headroom, dynrng) */ |
1167 for(ch=1; ch<=s->channels; ch++) { | 1167 for(ch=1; ch<=s->channels; ch++) { |
1168 float gain = s->mul_bias / 4194304.0f; | 1168 float gain = s->mul_bias / 4194304.0f; |
1169 if(s->channel_mode == AC3_CHMODE_DUALMONO) { | 1169 if(s->channel_mode == AC3_CHMODE_DUALMONO) { |
1170 gain *= s->dynamic_range[ch-1]; | 1170 gain *= s->dynamic_range[2-ch]; |
1171 } else { | 1171 } else { |
1172 gain *= s->dynamic_range[0]; | 1172 gain *= s->dynamic_range[0]; |
1173 } | 1173 } |
1174 s->dsp.int32_to_float_fmul_scalar(s->transform_coeffs[ch], s->fixed_coeffs[ch], gain, 256); | 1174 s->dsp.int32_to_float_fmul_scalar(s->transform_coeffs[ch], s->fixed_coeffs[ch], gain, 256); |
1175 } | 1175 } |