aboutsummaryrefslogtreecommitdiffstats
path: root/libFDK
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Use __builtin_clz instead of default implementation of fixnormz on GCC"Martin Storsjo2012-11-011-12/+0
| | | | | | | | | This reverts commit e036dbc8eb7d5fdd02dc70faff20e9ac3e2989ca. Upstream took __builtin_clz in use (in the new header libFDK/include/x86/clz_x86.h, together with an alternative implementation for MSVC), so this change can be dropped to minimize the differences.
* Merge remote-tracking branch 'aosp/jb-mr1-release' into masterMartin Storsjo2012-11-019-15/+209
|\ | | | | | | | | | | | | Conflicts: libAACenc/src/band_nrg.cpp libAACenc/src/grp_data.cpp libSBRenc/src/env_est.cpp
| * Bug 7170947 Update AAC codecJean-Michel Trivi2012-10-026-10/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Fraunhofer: * AAC Decoder - Stick to the written MPEG standard instead of the MPEG reference software in terms of reference level normalization. Always set the program reference level equal to the target level. This disables level normalization using a default level for streams without embedded metadata. Modified file(s): libAACdec\src\aacdec_drc.cpp - Fix downmix channel assignment when using a WAV output channel ordering. Modified file(s): libPCMutils\src\pcmutils_lib.cpp - Retain signal accuracy and prevent LSB alteration when no level correction needs to be done. Modified file(s): libAACdec\src\aacdec_drc.h libAACdec\src\aacdec_drc.cpp libSBRdec\src\sbrdecoder.cpp libSBRdec\src\sbr_dec.cpp libSBRdec\src\sbrdec_drc.cpp - Align metadata processing with reference implementation. Modified file(s): libAACdec\src\aacdec_drc.h libAACdec\src\aacdecoder.cpp * AAC-Encoder - Prevent potential overflow in energy calculation after TNS processing. Modified file(s): libAACenc\src\band_nrg.cpp - Added saturation for number of relevant lines which are used in pe calculation. Modified file(s): libAACenc\src\line_pe.cpp - Removed obsolete files. Deleded file(s): libAACenc\src\tns_param.h libAACenc\src\tns_param.cpp * FDK-Library - Added x86 Count Leading Zeros intrinsic. Modified file(s): libFDK\include\clz.h Added file(s): libFDK\include\x86\clz_x86.h - Fixed compilation for MIPS GCC-4.4 and higher. Modified file(s): libFDK\include\mips\cplx_mul.h libFDK\include\mips\fixmul_mips.h Change-Id: I4be65f07f88d412224c7fddc3f054e8f451176cc
| * fix mips build by reverting files backKeun young Park2012-09-112-31/+5
| | | | | | | | | | | | - MIPS still needs the work-around Change-Id: If68b2028bd2779ada79020bb333ec8817abe9429
| * Bug fixes in AAC decoder, AAC encoder, FDK libraryJean-Michel Trivi2012-09-096-11/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Latest code drop from Fraunhofer: * AAC-Decoder - Expanded AAC-LD/ELD decoder TNS max band tables to avoid wrong data access for sampling rates <22kHz and >48kHz. Modified file(s): libAACdec\src\aacdec_tns.cpp libAACdec\src\aac_rom.h libAACdec\src\aac_rom.cpp - Fixed ELD synthesis QMF filterbank scaling for downsampled SBR. Modified file(s): libFDK\src\qmf.cpp * AAC-Encoder - Fixed bit rate limiting for lower limit as introduced in the Delivery 2012-05-11. Modified file(s): libAACenc\include\aacenc_lib.h libAACenc\src\aacenc.h libAACenc\src\aacenc.cpp libSBRenc\src\sbr_rom.h libSBRenc\src\sbr_rom.cpp - Allow negative prediction gain as meaning that there is no coding gain. Make use of scaleValueSaturate in gauss window calculation. Modified file(s): libAACenc\src\aacenc_tns.cpp - Added energy saturation to prevent overflow in short blocks. Modified file(s): libAACenc\src\grp_data.cpp - Perform scalefactor adaption in case quantized lines are out of valid range. Modified file(s): libAACenc\src\quantize.cpp - Interrupt quantization loop when no spectral data is available. Adjustments in bitreservoir adaption. Modified file(s): libAACenc\src\qc_main.cpp - Indroduced dynamic scaling in none missing harmonic energy lowering compensation. Modified file(s): libSBRenc\src\env_est.cpp * FDK-Library - Fixed saturation for negative values in scaleValueSaturate. Modified file(s): libFDK\include\scale.h Change-Id: If830ea65caef6b5554281e4b7a77a8b2e08825ce
* | Revert "Do schur_div with a direct 64 bit division instead of a loop on x86"Martin Storsjo2012-09-141-10/+0
| | | | | | | | | | | | | | | | | | This reverts commit 923f3e95f3e332d26f03cf6782f0ab61596ceef2. The optimized version differed from the original in a few cases (in some cases where the return value turned out to be negative while the original implementation returned a positive value), so revert it for now until it has been analyzed completely.
* | Do schur_div with a direct 64 bit division instead of a loop on x86Jakub Stachowski2012-09-091-0/+10
| | | | | | | | This speeds up HE-AACv2 encoding from 3.85 s to 3.42 s on a Core i7.
* | Merge remote-tracking branch 'aosp/master'Martin Storsjo2012-09-052-31/+5
|\|
| * GCC 4.4 and later cannot handle h constructs. Fix to replace the assembly ↵Raghu Gandham2012-08-092-31/+5
| | | | | | | | | | | | constructs. Change-Id: I47509c20ee32f04ce42105563d2d4013910da531
| * Snapshot 2bda038c163298531d47394bc2c09e1409c5d0dbThe Android Open Source Project2012-07-1161-0/+20672
| | | | Change-Id: If584e579464f28b97d50e51fc76ba654a5536c54
* Use __builtin_clz instead of default implementation of fixnormz on GCCJakub Stachowski2012-08-141-0/+12
| | | | | | | | | | | | 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.
* Add NOTICE file. Rework make file so it appears in settings.Dave Burke2012-06-122-32/+0
| | | | Change-Id: I9d9ab17121e2db58f8a4ba4b40e14cab629b1a7e
* Added license boilerplate to all source files.Dave Burke2012-06-1161-2027/+4844
| | | | | | | | | 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.
* Update to 2012_05_11 version.Dave Burke2012-05-129-10/+1000
| | | | | | | | | | 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
* Fraunhofer AAC codec.Dave Burke2012-04-1761-0/+16897
License boilerplate update to follow. Change-Id: I2810460c11a58b6d148d84673cc031f3685e79b5