1. 18 Mar, 2013 1 commit
    • Martin Storsjo's avatar
      Avoid too big changes in isScale · 226601a8
      Martin Storsjo authored
      These values are delta encoded, but only steps [-60,60] are
      possible to encode. If the difference between two values are
      bigger than that, we end up with a sequence we are unable to
      encode.
      
      This fixes crashes on certain stereo samples at higher
      bitrates.
      226601a8
  2. 27 Feb, 2013 1 commit
  3. 17 Feb, 2013 1 commit
    • Martin Storsjo's avatar
      Don't try to shift more bits than the variable length · 8f9f42c1
      Martin Storsjo authored
      Shifting by more than (or equal to) the variable length is
      undefined in C.
      
      This caused the quantized spectrum values to remain unshifted,
      causing loud beeps in some samples.
      
      The exact same change was originally applied in
      65745694 (for AOSP) and in 24021f19 (in the separate fdk-aac
      repo), but was overwritten and silently reverted by the new
      upstream code drop for Android 4.2 in 381d6984. After the code
      drop, I chose not to reapply this change since the crashes that
      it fixed had been fixed in other ways upstream and I was unable to
      reproduce them after the new code drop.
      8f9f42c1
  4. 30 Nov, 2012 4 commits
  5. 13 Nov, 2012 1 commit
  6. 02 Nov, 2012 3 commits
  7. 01 Nov, 2012 5 commits
  8. 25 Oct, 2012 1 commit
  9. 05 Oct, 2012 1 commit
  10. 02 Oct, 2012 1 commit
    • Jean-Michel Trivi's avatar
      Bug 7170947 Update AAC codec · 6ab36997
      Jean-Michel Trivi authored
      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
      6ab36997
  11. 14 Sep, 2012 1 commit
  12. 13 Sep, 2012 1 commit
  13. 12 Sep, 2012 3 commits
  14. 09 Sep, 2012 2 commits
    • Jakub Stachowski's avatar
      Do schur_div with a direct 64 bit division instead of a loop on x86 · 923f3e95
      Jakub Stachowski authored
      This speeds up HE-AACv2 encoding from 3.85 s to 3.42 s on a Core i7.
      923f3e95
    • Jean-Michel Trivi's avatar
      Bug fixes in AAC decoder, AAC encoder, FDK library · 381d6984
      Jean-Michel Trivi authored
      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
      381d6984
  15. 05 Sep, 2012 1 commit
  16. 04 Sep, 2012 1 commit
  17. 02 Sep, 2012 2 commits
  18. 15 Aug, 2012 1 commit
  19. 14 Aug, 2012 1 commit
    • Jakub Stachowski's avatar
      Use __builtin_clz instead of default implementation of fixnormz on GCC · e036dbc8
      Jakub Stachowski authored
      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.
      e036dbc8
  20. 13 Aug, 2012 1 commit
  21. 11 Aug, 2012 1 commit
  22. 10 Aug, 2012 5 commits
  23. 08 Aug, 2012 1 commit