Commit Graph

274 Commits

Author SHA1 Message Date
Martin Storsjo af5863a78e 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
2017-06-22 12:32:55 +03:00
Martin Storsjo a9c8cb2cf6 Revert "Fix "Stack-buffer-overflow in FDKmemset""
This reverts commit 39e13c1acb.

This turned out to break HE-AACv2 encoding. Will look for a better
fix for the issue found by the fuzzed sample.

This fixes issue #69.
2017-06-22 11:54:29 +03:00
Martin Storsjo e7f36eed22 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
2017-06-12 23:44:59 +03:00
Martin Storsjo 39e13c1acb 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.

Fixes: 1973/clusterfuzz-testcase-minimized-6319232084082688

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:59 +03:00
Martin Storsjo d2fa9750d5 Make sure to end all CRC regions in the right order
This fixes assert failures, when a (corrupt/fuzzed) bitstream
doesn't trigger starting/ending CRCs properly (or when decoding
is aborted halfway when an error is encountered). Skipping ending
a CRC region doesn't trigger an assert failure, but when a later
CRC region is started and ended, an assert fails when the end
doesn't match the expected CRC region.

Fixes: 1928/clusterfuzz-testcase-minimized-6480505958563840

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:43 +03:00
Martin Storsjo 21cb19455c Don't try to read a negative number of bits
Fixes: 1919/clusterfuzz-testcase-minimized-5021082513833984

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:43 +03:00
Martin Storsjo 4c4da0e39a 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
2017-06-12 23:44:43 +03:00
Martin Storsjo 50922e3dbd Try to properly handle the case when the bitstream reader runs out of bits to read 2017-04-26 23:37:11 +03:00
Robert Kausch 6b0d8201b1 Add checks to avoid overreading supplied buffers and fix issue #61. 2017-04-23 21:31:36 +02:00
Martin Storsjo 5eb6f0db8c Saturate additions in spectralChange
This fixes a crash.
2017-03-14 14:37:55 +02:00
Martin Storsjo 32c712cbd1 Merge remote-tracking branch 'aosp/master' 2017-03-14 14:37:45 +02:00
Treehugger Robot b0af861f5a Merge "Fix not properly handled NULL-pointer access before check in aac lib" 2017-02-23 21:25:44 +00:00
liuchao 64bd48e21b Fix not properly handled NULL-pointer access before check in aac lib
1) Fixes some potential NULL-pointer access in case input pointer is
passed NULL
2) Modified some for lazy init

Test: mm -j 8
Change-Id: I7fca97e1d9f70d8e8c1533b519181af35a5468f7
2017-02-23 14:22:01 +08:00
Treehugger Robot b82c85d0b1 Merge "Linux compilation fix" 2017-02-21 20:48:23 +00:00
Jakub Pawlowski 2cd9fe3964 Linux compilation fix
Test: manual
Change-Id: Ie374e47b93e8fa3a44c731cb73f7e151d265c74c
2017-02-21 10:43:02 -08:00
Treehugger Robot 8334e4b410 Merge "Change build config of aac from Android.mk to Android.bp" 2017-01-20 01:50:48 +00:00
Pavlin Radoslavov 6cc0003b74 Change build config of aac from Android.mk to Android.bp
* In an effort to modernize build configurations to the new Soong
  system, we need to upgrade existing Android.mk files to Android.bp
* This file is done by using the following steps:
  1. Manually removing all *_sources from Android.mk, because
     of the unusual make logic they use
  2. Running the auto-conversion tool:
     androidmk Android.mk > Android.bp
  3. Editing the result Android.bp:
     3.1. Writing the "srcs" list
     3.2. Removing the escaping around -Wno-#warnings in cflags,
          because those are not needed anymore
     3.3. Renamed local_include_dirs to export_include_dirs to
          facilititate the inclusion of header files.
          It appears users of libFraunhoferAAC are using header
          files from all include directories, hence the renaming.

Test: Code compilation ("mm" in external/aac, and "make" in top-directory)
Bug: b/32958753 b/34454142
Change-Id: Ie89f73722908e8734f4b88f1407952311ec064af
2017-01-19 13:10:11 -08:00
Martin Storsjo 74c1a2a4f8 Update the changelog for the upcoming 0.1.5 release 2017-01-11 10:45:23 +02:00
Martin Storsjo bf64cd3964 Merge remote-tracking branch 'aosp/master' 2017-01-04 08:49:09 +02:00
Martin Storsjo 5fd7e6537d Merge remote-tracking branch 'aosp/master' 2016-10-28 10:26:20 +03:00
Martin Storsjo 664e5f2794 Merge "Remove redundant register storage class specifiers"
am: ed91226cec

Change-Id: Ieb0f6090190d7cd2d21599f9b1e6ce950608313d
2016-10-28 01:14:27 +00:00
Treehugger Robot ed91226cec Merge "Remove redundant register storage class specifiers" 2016-10-28 01:08:50 +00:00
Martin Storsjo 6ec082c6c3 Remove redundant register storage class specifiers
Clang warns about this being deprecated, when building without specifying
-std=c++98.

This doesn't give any measurable encoding speed impact on ARM or AArch64,
on neither GCC nor Clang.

Change-Id: I63a0bbd1dccb97547522da188ee585d4d8127c29
2016-10-18 09:22:55 +03:00
Martin Storsjo 2b1e8db04d Don't force C++98 mode any longer
The code builds fine in C++11 mode now.
2016-10-18 08:29:04 +03:00
Martin Storsjo 55554d0b2d Merge remote-tracking branch 'aosp/master' 2016-10-18 08:28:51 +03:00
Martin Storsjo 515fb25ef7 Merge "Add casts to avoid errors due to narrowing"
am: 4556cb9cb8

Change-Id: I4cb4a7dace03c7c09403588da05ea8df0f35077e
2016-10-18 03:12:10 +00:00
Treehugger Robot 4556cb9cb8 Merge "Add casts to avoid errors due to narrowing" 2016-10-18 03:05:51 +00:00
Martin Storsjo 6d7d5013ea Add casts to avoid errors due to narrowing
This fixes building in C++11 mode, which normally errors out
on narrowing hex literals to signed long.

This is similar to what was done in git commit ef30836651
(change id I64d19a8a8059c5a96386b1eaac297fd2469515f8), completing
the fix for that category of issues.

Change-Id: I1907bc947d43bf44910fb2b34bf2b31c0e53aa53
2016-10-17 10:32:24 +03:00
Martin Storsjo cb57d89522 Add new files to "make dist" 2016-09-24 13:36:43 +03:00
Martin Storsjo 72037da0ba Fix building with MSVC for ARM
cmnintrin.h only existed for Windows CE, and doesn't seem to actually
be necessary for building this.
2016-09-11 13:28:47 +03:00
Martin Storsjo 45915b67e4 Detect MSVC x64 2016-09-11 13:28:44 +03:00
opcodevoid 6ac0611b07 Windows MSVC Makefile 2016-09-11 13:28:30 +03:00
Martin Storsjo 5eb3c9be88 Merge remote-tracking branch 'aosp/master' 2016-09-10 14:38:15 +03:00
Lexyan 1d686c3a23 Add aarch64 assembly optimization (ARMv8a 64 bits)
The fixmuldiv functions don't need inline assembly to be fast
in this architecture; the compiler (both clang and GCC) figure
out to use the optimal instructions for this (which is 2 instruction
sequence), and when letting the compiler emit the instructions
instead of using inline assembly, the compiler is able to
interleave those instructions with other instructions,
improving scheduling, making it even faster than when using
inline assembly.

Overall, this gives about 50% speedup.
2016-09-10 14:33:39 +03:00
Jean-Michel Trivi ca6ae4ffe4 Merge "Avoid a warning about extra parentheses" am: f935254cc9 am: 899335d310
am: 79c3cd8b1a

Change-Id: Ia7a3b896268f11c5c2003c36aa38724910b08db0
2016-09-09 22:18:35 +00:00
Jean-Michel Trivi 79c3cd8b1a Merge "Avoid a warning about extra parentheses" am: f935254cc9
am: 899335d310

Change-Id: Iff4192d216e3ebeed98bf37d76b892be391ffa02
2016-09-09 22:16:04 +00:00
Jean-Michel Trivi 899335d310 Merge "Avoid a warning about extra parentheses"
am: f935254cc9

Change-Id: I838bc99ee6450cdf300663f3a1c356e5cacf517f
2016-09-09 22:13:04 +00:00
Jean-Michel Trivi f935254cc9 Merge "Avoid a warning about extra parentheses" 2016-09-09 22:06:10 +00:00
Martin Storsjo ebb66ffd4a Avoid a warning about extra parentheses
This fixes the following warning:

libSBRenc/src/sbr_encoder.cpp:1942:14: warning: equality comparison
      with extraneous parentheses [-Wparentheses-equality]

Change-Id: I2c833d19348574473c752076a4efff6642c0d653
2016-08-30 09:57:04 +03:00
Martin Storsjo a0bd8aa3b6 Bump the package version to 0.1.5 2016-08-25 22:20:09 +03:00
Martin Storsjo 932fc12396 Update Makefile.am with newly added and removed files 2016-08-25 22:14:25 +03:00
Martin Storsjo 1ce312b1dc Bump the library versions in the headers 2016-08-25 22:13:16 +03:00
Martin Storsjo f9d0f65e65 Merge remote-tracking branch 'aosp/master' 2016-08-25 22:12:15 +03:00
Martin Storsjo 15b128dd82 Explicitly force building in C++98 mode
GCC 6 defaults to C++14 (or more precisely, gnu++14) instead of C++98
(or gnu++98).

The fdk-aac source doesn't support being built in this mode at the
moment, since it relies on narrowing conversion from unsigned 32 bit
integers to FIXP_DBL (which is a signed data type of the same size).

The same approach is used upstream in Android as well, since
d52f374768.

This fixes buliding with GCC 6.
2016-05-18 10:13:31 +03:00
Martin Storsjo 8fe6faf261 Merge remote-tracking branch 'aosp/master' 2016-05-18 09:36:12 +03:00
Guillaume Smaha f132ac5f3d Invert inline and void to be compatible with gcc 3.3.4 2016-05-18 08:07:32 +02:00
Guillaume Smaha 112fe2c68d Fix issue with gcc 3.4.3 which doesn't support always_inline without inline 2016-05-17 15:39:10 +02:00
Glenn Kasten fb66dceae5 Merge "Disable warnings that are not easily fixable" am: 8192b1a am: 2a923c9
am: 00fc1c6

* commit '00fc1c66d5a524c6961db04d05e1076b18003231':
  Disable warnings that are not easily fixable

Change-Id: Id64b163cd217ad1cbb209843819416f3a8b354b1
2016-04-20 23:44:28 +00:00
Glenn Kasten 0d9ca2d051 Merge "Add default case for undefined pointer initialization" am: 9d0179c am: 27625f2
am: c3f7cf7

* commit 'c3f7cf7f1b8987a873ceea8c1b45206dd611e425':
  Add default case for undefined pointer initialization

Change-Id: I11a5787070f3be7f2d476ec1ebd54c1d41ce7dc2
2016-04-20 23:44:28 +00:00
Glenn Kasten e95a3bd58f Merge "Left shift of negative int is undefined" am: 6ae5480 am: 2b2e97b
am: e34e2b9

* commit 'e34e2b9d54680b7d59104b8398d10f6d4d8c5be6':
  Left shift of negative int is undefined

Change-Id: Ic539e64d4cf654b3e8924d6321ac203f4f355a96
2016-04-20 23:44:27 +00:00