Ticket #6569: mythtv_ac3gainfix.patch.v2

File mythtv_ac3gainfix.patch.v2, 845 bytes (added by Bill Meek <keemllib@…>, 13 years ago)

Works with trunk at 27015

Line 
1Index: 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 {