Commit Graph

447 Commits

Author SHA1 Message Date
Martin Storsjo 4edef6b48b WIP: Testing: Add aborts on overreads 2018-11-06 09:43:05 +02:00
Martin Storsjo 1c6ad60e83 Fix overflows in accumulation, fixing crashes
This fixes github issue #83.
2018-11-06 09:43:05 +02:00
Martin Storsjo 5e053a4005 Feed more input data when necessary for ADTS
This fixes cases where an ADTS header could set numberOfRawDataBlocks
to a number larger than 1, which would lead to transportDec_FillData
not feeding any more data, even though the input buffer was depleted.

Fixes: 3014/clusterfuzz-testcase-5425740193464320

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:43:05 +02:00
Martin Storsjo b257494414 Check that pSettings is initialized
Fixes: 2872/clusterfuzz-testcminimized-4529959869612032

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:43:05 +02:00
Martin Storsjo 079de87687 Check for heightLayer out of range
Alternatively, the bits read in CProgramConfig_ReadHeightExt could
be checked right there instead.

Fixes: 2802/clusterfuzz-testcase-minimized-6752357788418048

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:43:04 +02:00
Martin Storsjo 93aff8af7f Re-fix "Stack-buffer-overflow in FDKmemset"
This probably doesn't fix the root cause, but at least fixes
the issues found in this particular fuzzed sample.

Compared to the previous fix in 39e13c1acb,
this doesn't break HE-AACv2 encoding, by allowing the case with
usb==no_channels.

Fixes: 1973/clusterfuzz-testcase-minimized-6319232084082688

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:43:04 +02:00
Martin Storsjo 3bfec4eaef Check that the SBR decoder has been properly initialized
This probably doesn't fix the root cause, but at least fixes
the issues found in this particular fuzzed sample.

Fixes: 1994/clusterfuzz-testcase-minimized-6368089497141248

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:43:04 +02:00
Martin Storsjo 40e15b58d0 Avoid infinite loops in block decoding
Fixes: 1921/clusterfuzz-testcase-minimized-5480510065213440

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:43:04 +02:00
Robert Kausch fdc8fe94a6 Add checks to avoid overreading supplied buffers and fix issue #61. 2018-11-06 09:43:04 +02:00
Martin Storsjo 3aa26e273e Avoid overreads in the bitstream reader 2018-11-06 09:43:04 +02:00
Martin Storsjo 36a85bf987 Saturate additions in spectralChange
This fixes a crash.
2018-11-06 09:43:04 +02:00
Martin Storsjo ec01f65d98 TESTING: Convert aac-dec.c to feed bytes blindly 2018-11-06 09:43:04 +02:00
Martin Storsjo 4e24c5956a Add an example of decoding from an ADTS file 2018-11-06 09:43:04 +02:00
Martin Storsjo 27de781e71 Add wav writer functions, for use with a decoder example 2018-11-06 09:43:04 +02:00
Martin Storsjo 35d6f66c58 Saturate additions in FDKaacEnc_IntensityStereoProcessing
This fixes a crash when encoding a sample from github issue #98.
2018-11-06 09:03:34 +02:00
Martin Storsjo 2df66985b5 Reapply: Avoid reading out of bounds due to too large aaIidIndexMapped
Fixes: 10726/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LIBFDK_AAC_fuzzer-5167035365982208

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:03:34 +02:00
Martin Storsjo bcfdf45d12 Reapply: Avoid reading out of bounds due to negative aaIccIndexMapped
Fixes: 10325/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LIBFDK_AAC_fuzzer-5740113355603968

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2018-11-06 09:03:34 +02:00
Martin Storsjo 1a9100c1b7 Remove a duplicate definition of fMax/fMin for x86_64 mingw
FIXP_SGL is a typedef for SHORT, so these extra definitions (which
only were enabled on x86_64 mingw) were duplicates with the fMin/fMax
functions defined for FIXP_SGL right above.
2018-11-06 09:03:34 +02:00
Martin Storsjo 9cd3040ff9 Initialize the transport decoder library with TPDEC_PARAM_IGNORE_BUFFERFULLNESS
Prior to FDKv2, this was what the library used to do.

This makes sure that the decoder actually decodes ADTS frames directly
if feeding full ADTS frames to the decoder. Previously after FDKv2,
the decoder would only start decoding ADTS frames after feeding a few
frames.
2018-11-06 09:03:14 +02:00
Doug Benedict 944114bb04 Make sure there are enough bits when reading ADTS header. 2018-11-06 09:03:14 +02:00
Martin Storsjo b51c73991c Recognize the MSVC ARM64 compiler arch identification 2018-11-06 09:03:14 +02:00
Martin Storsjo 4cdeed63b4 Replace __attribute__((always_inline)) with FDK_FORCEINLINE
This fixes compilation for ARM with MSVC.
2018-11-06 09:03:14 +02:00
Martin Storsjo d058692675 Add an fdk_ prefix to t_qua_gain7b
This fixes symbol collisions, if libfdk-aac and libopencore-amr are
statically linked into the same binary.
2018-11-06 09:03:14 +02:00
Martin Storsjo b69a012832 Fix building with MSVC for ARM
cmnintrin.h only existed for Windows CE, and doesn't seem to actually
be necessary for building this.
2018-11-06 09:03:14 +02:00
opcodevoid f2b77f8100 Windows MSVC Makefile 2018-11-06 09:03:14 +02:00
Guillaume Smaha 77fbe5d3e0 Invert inline and void to be compatible with gcc 3.3.4 2018-11-06 09:03:14 +02:00
Vicente Olivert Riera 6eb248d1a4 libFDK/include/mips/cplx_mul.h: use C code instead of ASM
Replace the assembler code by the equivalent in C. This way it will work
for every MIPS ISA. Now the check for __mips_isa_rev < 6 is no longer
necessary, so remove it.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
2018-11-06 09:03:14 +02:00
Jasper Lievisse Adriaanse 89dd198533 Fix the preprocessor statements controlling the use of mips{32,64}r1 instructions.
Only enable code using mips32/mips64 instructions if the compiler is targetting
this ISA. (integer madd and msub instructions aren't available in the
``canonical'' mips ISAs)
2018-11-06 09:03:14 +02:00
Mark Harris 6c533b8a8e Add ppc optimization for clz and fixmul
Optimize ppc/ppc64 similar to i386/x86_64, approximately doubling
encoding speed on a Power Mac G5 running OS X 10.5.8.
2018-11-06 09:03:14 +02:00
Mark Harris c3769df14c Fix PowerPC Mac build 2018-11-06 09:03:14 +02:00
Martin Storsjo 68e7a95519 Include the library versions in the publicly installed headers
This allows callers to conditionally use new API features without
breaking compatibility with the earlier versions of the library.
2018-11-06 09:03:14 +02:00
Martin Storsjo 1e1eca7c3f Add automake/autoconf source files
Also add examples.
2018-11-06 09:03:14 +02:00
Sergio Ammirata 661e20600f Add support for Workgroup 4 (WG4) channel mapping
This is the channel ordering used in DVD Audio, and is the standard
used internally in the VLC media player.
2018-11-06 09:03:14 +02:00
Treehugger Robot a4d6ca7b07 Merge "Fix huffman decoder escape sequence length limitation." 2018-11-05 22:58:33 +00:00
Fraunhofer IIS FDK f90be06503 Fix huffman decoder escape sequence length limitation.
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Bug: 112661753

Change-Id: Ib05cc2c065739c27b9720a24f90d0ce4d15bf601
Merged-In: 62623d8d79
2018-11-05 14:43:14 -05:00
Bill Yi a1c3f92674 Merge pie-platform-release to aosp-master - DO NOT MERGE
Change-Id: Iccc6a8552f6ae249487f8fc9dcee8b193327c6f3
2018-10-24 14:45:34 -07:00
Jean-Michel Trivi 40676e7cba Merge "Fix call to function sbrDecoder_Header() through pointer to incorrect function type."
am: fb65c0c24b

Change-Id: I0fcbaf9d5b03272b1a8c4872e6ac02f7c6dc2c3a
2018-10-12 11:57:26 -07:00
Jean-Michel Trivi fb65c0c24b Merge "Fix call to function sbrDecoder_Header() through pointer to incorrect function type." 2018-10-12 18:33:22 +00:00
Fraunhofer IIS FDK 9db742a7d3 Fix call to function sbrDecoder_Header() through pointer to incorrect function type.
While testing FDK in Android P DP3 x86 64bit emulator we observed a runtime error.
The function parameter of the callback didn't use a typeless pointer.
Following patch contains a revised sbr decoder callback function with explicit data type cast to be inline with all other callbacks in FDK.

Bug: 112662306
Bug: 116075869
Test: on x86: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: Id224de22beaf2eb9631babd838c4c3ceae0a801e
Merged-In: Idc9c44a9755b8151d5c7d8107696f43ac592413b
2018-10-12 12:02:30 -04:00
Jean-Michel Trivi efe7d49245 Merge "Signed Integer Overflow in DuckerCalcEnergy()"
am: 78f80da872

Change-Id: If4010115866eeb52033fa361aafdb6665c824471
2018-10-04 17:15:49 -07:00
Jean-Michel Trivi 78f80da872 Merge "Signed Integer Overflow in DuckerCalcEnergy()" 2018-10-04 23:59:49 +00:00
Fraunhofer IIS FDK b4e3109937 Signed Integer Overflow in DuckerCalcEnergy()
Bug: 112122038
Bug: 112891546
Test: see b/112122038 for repro stream
Change-Id: I7542e2a9033c2e97bf32e0be3bbc6f48746d28f0
2018-10-04 14:50:18 -07:00
Chih-hung Hsieh fa1ce53961 Merge "Suppress -Wimplicit-fallthrough."
am: 8704782ffd

Change-Id: I4712438bc10c81df6fef4d3a8ea6efeae483a6fe
2018-09-05 09:42:47 -07:00
Chih-hung Hsieh 8704782ffd Merge "Suppress -Wimplicit-fallthrough." 2018-09-05 16:30:42 +00:00
Chih-Hung Hsieh 96ed252649 Suppress -Wimplicit-fallthrough.
-Wimplicit-fallthrough will be enabled globally.

Test: build with global -Wimplicit-fallthrough.
Change-Id: I13b4402d9df23a888bdc80be4ce39cd5cd4cff7f
2018-09-04 14:20:04 -07:00
Xin Li c382b2dd60 Merge "Merge Android Pie into master" am: 7027cd8748
am: 6acb615429

Change-Id: I1e133a180eccad7a726a4f37ebbf378a5f15c7a4
2018-08-07 17:03:12 -07:00
Xin Li 6acb615429 Merge "Merge Android Pie into master"
am: 7027cd8748

Change-Id: I8af7f0e7c9e5527c66d4f2d75a3e70f620a5ccee
2018-08-07 13:25:27 -07:00
Xin Li 7027cd8748 Merge "Merge Android Pie into master" 2018-08-07 16:51:25 +00:00
Xin Li 0757f38b01 Merge Android Pie into master
Bug: 112104996
Change-Id: I110b508de124016501bc62120163c58633857438
2018-08-06 16:50:14 -07:00
Xin Li 506b9834d6 Merge pi-dev-plus-aosp-without-vendor into stage-aosp-master
am: 6a79fb47e4

Change-Id: Ib9c8ca0370bee684b8b6ae903325ea8f1f1b34d3
2018-06-09 01:50:13 -07:00