1 | Index: external/FFmpeg/libavcodec/ac3dec.c |
---|
2 | =================================================================== |
---|
3 | --- external/FFmpeg/libavcodec/ac3dec.c (revision 27015) |
---|
4 | +++ external/FFmpeg/libavcodec/ac3dec.c (working copy) |
---|
5 | @@ -88,6 +88,16 @@ |
---|
6 | LEVEL_MINUS_9DB |
---|
7 | }; |
---|
8 | |
---|
9 | +static const float gain_tweek[7] = { |
---|
10 | + LEVEL_ONE, |
---|
11 | + LEVEL_ONE, |
---|
12 | + LEVEL_ONE, |
---|
13 | + LEVEL_ONE, |
---|
14 | + 2, |
---|
15 | + 3.16, |
---|
16 | + 3.16 |
---|
17 | +}; |
---|
18 | + |
---|
19 | /** |
---|
20 | * Table for center mix levels |
---|
21 | * reference: Section 5.4.2.4 cmixlev |
---|
22 | @@ -1258,7 +1268,7 @@ |
---|
23 | |
---|
24 | /* apply scaling to coefficients (headroom, dynrng) */ |
---|
25 | for(ch=1; ch<=s->channels; ch++) { |
---|
26 | - float gain = s->mul_bias / 4194304.0f; |
---|
27 | + float gain = s->mul_bias * gain_tweek[s->channels] / 4194304.0f; |
---|
28 | if(s->channel_mode == AC3_CHMODE_DUALMONO) { |
---|
29 | gain *= s->dynamic_range[2-ch]; |
---|
30 | } else { |
---|