1. 20 Aug, 2013 3 commits
    • Jean-Michel Trivi's avatar
      Encoder quantizer fix · ed247dfa
      Jean-Michel Trivi authored
      AAC Encoder: Saturate quantizer shift value to prevent
        undefined behaviour.
      
      In very rare cases the shift value 'totalShift = (16-4)-(3*(totalShift>>2))'
       can be greater than accu data width. If you apply a shift with more then
       31 bit the result depends on the architecture and is not defined in C.
      For certain platforms zeros are shifted in. That would be our desired behaviour.
      On other platforms the shift will be applied as modulo. For example >>34
       would be applied as >>2. To prevent this discrepancy the shift value
       is limited/saturated to DFRACT_BITS-1. 'accu >>= fixMin(totalShift,DFRACT_BITS-1)'.
      
      Bug 9428126
      
      Change-Id: I27177654c4dc22cf899bc35dad9cdd040dccb02d
      ed247dfa
    • Jean-Michel Trivi's avatar
      Decode and SYS lib cleanup · 577fcbb5
      Jean-Michel Trivi authored
      * AAC-Encoder
      
         - Remove source snippets related to unsupported frame length of 960.
         - Adjust minBits initialization for disabled VBR configuration.
           Modified file(s):
              libAACenc/src/aacenc.h
              libAACenc/src/aacenc_lib.cpp
              libAACenc/src/aacenc_tns.cpp
              libAACenc/src/bandwidth.cpp
              libAACenc/src/psy_const.h
              libAACenc/src/transform.h
      
         - Revise encoder parameter restrictions: "Error Resilient(ER) AAC Low Complexity"
           is not supported. Where the AAC part of the FDK encoder threw an
           initialization error, now the aacEncoder_SetParam() returns an error
           before initialization if the application tries to configure this
           audio object type.
           Modified file(s):
              libAACenc/src/aacenc_lib.cpp
      
      * SYS-Library
      
         - Portability fix for Mingw32.
           Modified file(s):
              libSYS/include/machine_type.h
      
         - Minor changes.
           Modified file(s):
              libSYS/include/wav_file.h
              libSYS/src/wav_file.cpp
              libSYS/src/cmdl_parser.cpp
              libSYS/src/genericStds.cpp
      
      Bug 9428126
      
      Change-Id: I9fa44923d34f033d0dc607f2b85abacb8a85eb61
      577fcbb5
    • Jean-Michel Trivi's avatar
      Disclaimer update, lib version increment · 4f0d9705
      Jean-Michel Trivi authored
      - Update disclaimer in all source files.
      - Increment library version in each FDK sub-module.
      
      Bug 9428126
      
      Change-Id: I490b96d4ee472246b01483202b0bb4f1e9c2a5d7
      4f0d9705
  2. 05 Aug, 2013 1 commit
  3. 30 Nov, 2012 4 commits
  4. 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
  5. 12 Sep, 2012 3 commits
  6. 09 Sep, 2012 1 commit
    • 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
  7. 04 Sep, 2012 1 commit
  8. 02 Sep, 2012 1 commit
    • Irina Tirdea's avatar
      Remove workaround in aac for broken toolchain · ad749575
      Irina Tirdea authored
      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: default avatarIrina Tirdea <irina.tirdea@intel.com>
      ad749575
  9. 15 Aug, 2012 1 commit
  10. 13 Aug, 2012 1 commit
  11. 10 Aug, 2012 2 commits
  12. 08 Aug, 2012 1 commit
  13. 12 Jul, 2012 1 commit
  14. 11 Jul, 2012 1 commit