summaryrefslogtreecommitdiff
path: root/libavcodec/ac3dec_float.c
diff options
context:
space:
mode:
authorAndreas Cadhalpun <andreas.cadhalpun@googlemail.com>2015-03-13 22:28:42 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-03-14 04:27:06 +0100
commit7b05b5093ea67a3397b0c37cf398bab471e1ce2b (patch)
tree953130f4daa85a7bf2e93a2aa1c3ff0d098ff632 /libavcodec/ac3dec_float.c
parente16592c42e877ab93a9a719ca69df22c2a487a98 (diff)
downloadffmpeg-7b05b5093ea67a3397b0c37cf398bab471e1ce2b.tar.gz
ac3dec_fixed: always use the USE_FIXED=1 variant of the AC3DecodeContext
The AC3DecodeContext has a float (USE_FIXED=0) and an integer (USE_FIXED=1) variant, both of which can be present in the same binary. This is not only very confusing, but it also breaks horribly, when one variant is used by code expecting the other. This currently happens, because eac3dec.c is only compiled for the float variant, but also used from ac3dec_fixed.c, which uses the integer variant. The result is memory corruption, leading to crashes. So compile eac3dec.c once for each variant and adapt it, so that it works with the integer variant. A loss of precission and scaling bug has been fixed by the committer Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/ac3dec_float.c')
-rw-r--r--libavcodec/ac3dec_float.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/ac3dec_float.c b/libavcodec/ac3dec_float.c
index e7fc5cbed1..d74a0df68d 100644
--- a/libavcodec/ac3dec_float.c
+++ b/libavcodec/ac3dec_float.c
@@ -28,6 +28,7 @@
* Upmix delay samples from stereo to original channel layout.
*/
#include "ac3dec.h"
+#include "eac3dec.c"
#include "ac3dec.c"
static const AVOption options[] = {