aac project forces the system not to include sys/types.h by defining
_SYS_TYPES_H_. This is a workaround for broken android toolchain.
This is no longer needed in latest android version and can be safely
removed. This will also lead to more errors if changes in bionic
headers are needed.
Change-Id: Icb76c207d6b47e811eacff9f9403177629bfb451
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
The library contains architecture specific versions of the clz functions
for arm and mips, but the fallback C version for other architectures is
pretty slow.
By using __builtin_clz on GCC (available since GCC 3.4), we get a
significant (20-40 %) speedup of the total running time on x86.
Speed difference: 5.1 s instead of 8.6 s for AAC-LC 128 kbit/s and
3.8 s instead of 4.9 s for HE-AACv2 32 kbit/s, on an i7.
Shifting by more than (or equal to) the variable length is
undefined in C.
This caused the quantized spectrum values to go out of range,
triggering asserts later.
Change-Id: If81b6c8caa7b9c75941ad9d280b686d2069c968c
By default automake thinks the project is part of GNU and enforces the
presence of some files. By declaring the project foreign, we can
remove the 0-sized files.
While the source is C++, it doesn't use anything from the C++
runtime, so by building with -fno-exceptions -fno-rtti, the
dynamic library doesn't have to be linked to libstdc++. This
also simplifies things for users of the static library.
Change-Id: I42a702487e6db4953dca0027710ea4fe266052fd
Also:
- Removed dead code in several source files.
- Minor changes in comments.
- No functional changes. No changes in executed code.
- Added documentation PDFs.
Fixes:
- Don't throw error for invalid bitrate but limit to functional value
- More robust ASC parsing
- More robust handling of corrupt bitstreams
- Handle multiple raw access units
Change-Id: Ib49fe2545ff4185fe924126da702fe84ac5c2d87