diff options
| author | Jean-Michel Trivi <jmtrivi@google.com> | 2016-04-05 16:14:53 +0000 | 
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2016-04-05 16:14:53 +0000 | 
| commit | bb7ad8711b3b620a7c7de669b7b6409e610c29dd (patch) | |
| tree | 6717743d4422e9d88e9a9f1631effd7563a9856b | |
| parent | f86e64f5c712edc2f3dd0a9d59d75a8ebd3422ea (diff) | |
| parent | 0713b4acff1a489e7d49725dc7c5e3dad370b5c8 (diff) | |
| download | fdk-aac-bb7ad8711b3b620a7c7de669b7b6409e610c29dd.tar.gz fdk-aac-bb7ad8711b3b620a7c7de669b7b6409e610c29dd.tar.bz2 fdk-aac-bb7ad8711b3b620a7c7de669b7b6409e610c29dd.zip | |
Remove compiler warnings, revised ARM QMF encoder am: ef30836
am: 0713b4a
* commit '0713b4acff1a489e7d49725dc7c5e3dad370b5c8':
  Remove compiler warnings, revised ARM QMF encoder
Change-Id: Ic3e76f0f1f37ff49b46efe5958e19499289db751
| -rw-r--r-- | libAACenc/src/aacEnc_rom.cpp | 32 | ||||
| -rw-r--r-- | libAACenc/src/aacEnc_rom.h | 14 | ||||
| -rw-r--r-- | libAACenc/src/aacenc.cpp | 6 | ||||
| -rw-r--r-- | libAACenc/src/aacenc_hcr.cpp | 93 | ||||
| -rw-r--r-- | libAACenc/src/aacenc_hcr.h | 96 | ||||
| -rw-r--r-- | libAACenc/src/aacenc_lib.cpp | 10 | ||||
| -rw-r--r-- | libAACenc/src/adj_thr.cpp | 18 | ||||
| -rw-r--r-- | libAACenc/src/psy_main.cpp | 6 | ||||
| -rw-r--r-- | libAACenc/src/qc_main.cpp | 31 | ||||
| -rw-r--r-- | libFDK/src/FDK_core.cpp | 4 | ||||
| -rw-r--r-- | libFDK/src/arm/qmf_arm.cpp | 78 | ||||
| -rw-r--r-- | libSBRenc/src/bit_sbr.cpp | 6 | ||||
| -rw-r--r-- | libSBRenc/src/ps_bitenc.cpp | 36 | ||||
| -rw-r--r-- | libSBRenc/src/ps_encode.cpp | 16 | ||||
| -rw-r--r-- | libSBRenc/src/sbr_encoder.cpp | 7 | 
15 files changed, 125 insertions, 328 deletions
| diff --git a/libAACenc/src/aacEnc_rom.cpp b/libAACenc/src/aacEnc_rom.cpp index 0cdf5fe..c6477e3 100644 --- a/libAACenc/src/aacEnc_rom.cpp +++ b/libAACenc/src/aacEnc_rom.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -93,7 +93,7 @@ amm-info@iis.fraunhofer.de  /*     Huffman Tables  */ -const INT FDKaacEnc_huff_ltab1_2[3][3][3][3]= +const ULONG FDKaacEnc_huff_ltab1_2[3][3][3][3]=  {    {      { {0x000b0009,0x00090007,0x000b0009}, {0x000a0008,0x00070006,0x000a0008}, {0x000b0009,0x00090008,0x000b0009} }, @@ -113,7 +113,7 @@ const INT FDKaacEnc_huff_ltab1_2[3][3][3][3]=  }; -const INT FDKaacEnc_huff_ltab3_4[3][3][3][3]= +const ULONG FDKaacEnc_huff_ltab3_4[3][3][3][3]=  {    {      { {0x00010004,0x00040005,0x00080008}, {0x00040005,0x00050004,0x00080008}, {0x00090009,0x00090008,0x000a000b} }, @@ -132,7 +132,7 @@ const INT FDKaacEnc_huff_ltab3_4[3][3][3][3]=    }  }; -const INT FDKaacEnc_huff_ltab5_6[9][9]= +const ULONG FDKaacEnc_huff_ltab5_6[9][9]=  {    {0x000d000b, 0x000c000a, 0x000b0009, 0x000b0009, 0x000a0009, 0x000b0009, 0x000b0009, 0x000c000a, 0x000d000b},    {0x000c000a, 0x000b0009, 0x000a0008, 0x00090007, 0x00080007, 0x00090007, 0x000a0008, 0x000b0009, 0x000c000a}, @@ -145,7 +145,7 @@ const INT FDKaacEnc_huff_ltab5_6[9][9]=    {0x000d000b, 0x000c000a, 0x000c0009, 0x000b0009, 0x000a0009, 0x000a0009, 0x000b0009, 0x000c000a, 0x000d000b}  }; -const INT FDKaacEnc_huff_ltab7_8[8][8]= +const ULONG FDKaacEnc_huff_ltab7_8[8][8]=  {    {0x00010005, 0x00030004, 0x00060005, 0x00070006, 0x00080007, 0x00090008, 0x000a0009, 0x000b000a},    {0x00030004, 0x00040003, 0x00060004, 0x00070005, 0x00080006, 0x00080007, 0x00090007, 0x00090008}, @@ -157,7 +157,7 @@ const INT FDKaacEnc_huff_ltab7_8[8][8]=    {0x000b000a, 0x000a0008, 0x000a0008, 0x000a0008, 0x000b0009, 0x000b0009, 0x000c0009, 0x000c000a}  }; -const INT FDKaacEnc_huff_ltab9_10[13][13]= +const ULONG FDKaacEnc_huff_ltab9_10[13][13]=  {    {0x00010006, 0x00030005, 0x00060006, 0x00080006, 0x00090007, 0x000a0008, 0x000a0009, 0x000b000a, 0x000b000a, 0x000c000a, 0x000c000b, 0x000d000b, 0x000d000c},    {0x00030005, 0x00040004, 0x00060004, 0x00070005, 0x00080006, 0x00080007, 0x00090007, 0x000a0008, 0x000a0008, 0x000a0009, 0x000b000a, 0x000c000a, 0x000c000b}, @@ -392,7 +392,7 @@ const USHORT FDKaacEnc_huff_ctab11[21][17]=    {0x0046, 0x00ea, 0x0034, 0x00ea, 0x0011, 0x001b, 0x00a9, 0x0094, 0x00e2, 0x0031, 0x00d0, 0x00e5, 0x0007, 0x0070, 0x0069, 0x003e, 0x0021}  }; -const INT FDKaacEnc_huff_ctabscf[121]= +const ULONG FDKaacEnc_huff_ctabscf[121]=  {    0x0003ffe8, 0x0003ffe6, 0x0003ffe7, 0x0003ffe5, 0x0007fff5, 0x0007fff1, 0x0007ffed, 0x0007fff6,    0x0007ffee, 0x0007ffef, 0x0007fff0, 0x0007fffc, 0x0007fffd, 0x0007ffff, 0x0007fffe, 0x0007fff7, @@ -657,11 +657,11 @@ const SFB_PARAM_SHORT p_FDKaacEnc_96000_short_128 = {  */  const FIXP_DBL FDKaacEnc_tnsEncCoeff3[8]=  { -  0x81f1d201, 0x91261481, 0xadb92301, 0xd438af00, 0x00000000, 0x37898080, 0x64130dff, 0x7cca6fff +  (FIXP_DBL)0x81f1d201, (FIXP_DBL)0x91261481, (FIXP_DBL)0xadb92301, (FIXP_DBL)0xd438af00, (FIXP_DBL)0x00000000, (FIXP_DBL)0x37898080, (FIXP_DBL)0x64130dff, (FIXP_DBL)0x7cca6fff  };  const FIXP_DBL FDKaacEnc_tnsCoeff3Borders[8]={ -  0x80000001 /*-4*/,  0x87b826df /*-3*/,  0x9df24154 /*-2*/,  0xbfffffe5 /*-1*/, -  0xe9c5e578 /* 0*/,  0x1c7b90f0 /* 1*/,  0x4fce83a9 /* 2*/,  0x7352f2c3 /* 3*/ +  (FIXP_DBL)0x80000001 /*-4*/,  (FIXP_DBL)0x87b826df /*-3*/,  (FIXP_DBL)0x9df24154 /*-2*/,  (FIXP_DBL)0xbfffffe5 /*-1*/, +  (FIXP_DBL)0xe9c5e578 /* 0*/,  (FIXP_DBL)0x1c7b90f0 /* 1*/,  (FIXP_DBL)0x4fce83a9 /* 2*/,  (FIXP_DBL)0x7352f2c3 /* 3*/  };  /* @@ -669,15 +669,15 @@ const FIXP_DBL FDKaacEnc_tnsCoeff3Borders[8]={  */  const FIXP_DBL FDKaacEnc_tnsEncCoeff4[16]=  { -  0x808bc881, 0x84e2e581, 0x8d6b4a01, 0x99da9201, 0xa9c45701, 0xbc9dde81, 0xd1c2d500, 0xe87ae540, -  0x00000000, 0x1a9cd9c0, 0x340ff240, 0x4b3c8bff, 0x5f1f5e7f, 0x6ed9eb7f, 0x79bc387f, 0x7f4c7e7f +  (FIXP_DBL)0x808bc881, (FIXP_DBL)0x84e2e581, (FIXP_DBL)0x8d6b4a01, (FIXP_DBL)0x99da9201, (FIXP_DBL)0xa9c45701, (FIXP_DBL)0xbc9dde81, (FIXP_DBL)0xd1c2d500, (FIXP_DBL)0xe87ae540, +  (FIXP_DBL)0x00000000, (FIXP_DBL)0x1a9cd9c0, (FIXP_DBL)0x340ff240, (FIXP_DBL)0x4b3c8bff, (FIXP_DBL)0x5f1f5e7f, (FIXP_DBL)0x6ed9eb7f, (FIXP_DBL)0x79bc387f, (FIXP_DBL)0x7f4c7e7f  };  const FIXP_DBL FDKaacEnc_tnsCoeff4Borders[16]=  { -  0x80000001 /*-8*/,  0x822deff0 /*-7*/,  0x88a4bfe6 /*-6*/,  0x932c159d /*-5*/, -  0xa16827c2 /*-4*/,  0xb2dcde27 /*-3*/,  0xc6f20b91 /*-2*/,  0xdcf89c64 /*-1*/, -  0xf4308ce1 /* 0*/,  0x0d613054 /* 1*/,  0x278dde80 /* 2*/,  0x4000001b /* 3*/, -  0x55a6127b /* 4*/,  0x678dde8f /* 5*/,  0x74ef0ed7 /* 6*/,  0x7d33f0da /* 7*/ +  (FIXP_DBL)0x80000001 /*-8*/,  (FIXP_DBL)0x822deff0 /*-7*/,  (FIXP_DBL)0x88a4bfe6 /*-6*/,  (FIXP_DBL)0x932c159d /*-5*/, +  (FIXP_DBL)0xa16827c2 /*-4*/,  (FIXP_DBL)0xb2dcde27 /*-3*/,  (FIXP_DBL)0xc6f20b91 /*-2*/,  (FIXP_DBL)0xdcf89c64 /*-1*/, +  (FIXP_DBL)0xf4308ce1 /* 0*/,  (FIXP_DBL)0x0d613054 /* 1*/,  (FIXP_DBL)0x278dde80 /* 2*/,  (FIXP_DBL)0x4000001b /* 3*/, +  (FIXP_DBL)0x55a6127b /* 4*/,  (FIXP_DBL)0x678dde8f /* 5*/,  (FIXP_DBL)0x74ef0ed7 /* 6*/,  (FIXP_DBL)0x7d33f0da /* 7*/  };  const FIXP_DBL FDKaacEnc_mTab_4_3Elc[512]={    FL2FXCONST_DBL(0.3968502629920499),FL2FXCONST_DBL(0.3978840634868335),FL2FXCONST_DBL(0.3989185359354711),FL2FXCONST_DBL(0.3999536794661432), diff --git a/libAACenc/src/aacEnc_rom.h b/libAACenc/src/aacEnc_rom.h index 37e5012..862417f 100644 --- a/libAACenc/src/aacEnc_rom.h +++ b/libAACenc/src/aacEnc_rom.h @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -105,11 +105,11 @@ amm-info@iis.fraunhofer.de  /*    Huffman Tables  */ -extern const INT    FDKaacEnc_huff_ltab1_2[3][3][3][3]; -extern const INT    FDKaacEnc_huff_ltab3_4[3][3][3][3]; -extern const INT    FDKaacEnc_huff_ltab5_6[9][9]; -extern const INT    FDKaacEnc_huff_ltab7_8[8][8]; -extern const INT    FDKaacEnc_huff_ltab9_10[13][13]; +extern const ULONG  FDKaacEnc_huff_ltab1_2[3][3][3][3]; +extern const ULONG  FDKaacEnc_huff_ltab3_4[3][3][3][3]; +extern const ULONG  FDKaacEnc_huff_ltab5_6[9][9]; +extern const ULONG  FDKaacEnc_huff_ltab7_8[8][8]; +extern const ULONG  FDKaacEnc_huff_ltab9_10[13][13];  extern const UCHAR  FDKaacEnc_huff_ltab11[17][17];  extern const UCHAR  FDKaacEnc_huff_ltabscf[121];  extern const USHORT FDKaacEnc_huff_ctab1[3][3][3][3]; @@ -123,7 +123,7 @@ extern const USHORT FDKaacEnc_huff_ctab8[8][8];  extern const USHORT FDKaacEnc_huff_ctab9[13][13];  extern const USHORT FDKaacEnc_huff_ctab10[13][13];  extern const USHORT FDKaacEnc_huff_ctab11[21][17]; -extern const INT    FDKaacEnc_huff_ctabscf[121]; +extern const ULONG  FDKaacEnc_huff_ctabscf[121];  /*    quantizer diff --git a/libAACenc/src/aacenc.cpp b/libAACenc/src/aacenc.cpp index 569662b..c47e882 100644 --- a/libAACenc/src/aacenc.cpp +++ b/libAACenc/src/aacenc.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -435,7 +435,9 @@ AAC_ENCODER_ERROR FDKaacEnc_Initialize(HANDLE_AAC_ENC      hAacEnc,           &averageBitsPerFrame,            config->bitrateMode,            config->nSubFrames -          ) != config->bitRate ) +          ) != config->bitRate +      && !((config->bitrateMode>=1) && (config->bitrateMode<=5)) +     )    {      return AAC_ENC_UNSUPPORTED_BITRATE;    } diff --git a/libAACenc/src/aacenc_hcr.cpp b/libAACenc/src/aacenc_hcr.cpp deleted file mode 100644 index 316623a..0000000 --- a/libAACenc/src/aacenc_hcr.cpp +++ /dev/null @@ -1,93 +0,0 @@ - -/* ----------------------------------------------------------------------------------------------------------- -Software License for The Fraunhofer FDK AAC Codec Library for Android - -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. -  All rights reserved. - - 1.    INTRODUCTION -The Fraunhofer FDK AAC Codec Library for Android ("FDK AAC Codec") is software that implements -the MPEG Advanced Audio Coding ("AAC") encoding and decoding scheme for digital audio. -This FDK AAC Codec software is intended to be used on a wide variety of Android devices. - -AAC's HE-AAC and HE-AAC v2 versions are regarded as today's most efficient general perceptual -audio codecs. AAC-ELD is considered the best-performing full-bandwidth communications codec by -independent studies and is widely deployed. AAC has been standardized by ISO and IEC as part -of the MPEG specifications. - -Patent licenses for necessary patent claims for the FDK AAC Codec (including those of Fraunhofer) -may be obtained through Via Licensing (www.vialicensing.com) or through the respective patent owners -individually for the purpose of encoding or decoding bit streams in products that are compliant with -the ISO/IEC MPEG audio standards. Please note that most manufacturers of Android devices already license -these patent claims through Via Licensing or directly from the patent owners, and therefore FDK AAC Codec -software may already be covered under those patent licenses when it is used for those licensed purposes only. - -Commercially-licensed AAC software libraries, including floating-point versions with enhanced sound quality, -are also available from Fraunhofer. Users are encouraged to check the Fraunhofer website for additional -applications information and documentation. - -2.    COPYRIGHT LICENSE - -Redistribution and use in source and binary forms, with or without modification, are permitted without -payment of copyright license fees provided that you satisfy the following conditions: - -You must retain the complete text of this software license in redistributions of the FDK AAC Codec or -your modifications thereto in source code form. - -You must retain the complete text of this software license in the documentation and/or other materials -provided with redistributions of the FDK AAC Codec or your modifications thereto in binary form. -You must make available free of charge copies of the complete source code of the FDK AAC Codec and your -modifications thereto to recipients of copies in binary form. - -The name of Fraunhofer may not be used to endorse or promote products derived from this library without -prior written permission. - -You may not charge copyright license fees for anyone to use, copy or distribute the FDK AAC Codec -software or your modifications thereto. - -Your modified versions of the FDK AAC Codec must carry prominent notices stating that you changed the software -and the date of any change. For modified versions of the FDK AAC Codec, the term -"Fraunhofer FDK AAC Codec Library for Android" must be replaced by the term -"Third-Party Modified Version of the Fraunhofer FDK AAC Codec Library for Android." - -3.    NO PATENT LICENSE - -NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without limitation the patents of Fraunhofer, -ARE GRANTED BY THIS SOFTWARE LICENSE. Fraunhofer provides no warranty of patent non-infringement with -respect to this software. - -You may use this FDK AAC Codec software or modifications thereto only for purposes that are authorized -by appropriate patent licenses. - -4.    DISCLAIMER - -This FDK AAC Codec software is provided by Fraunhofer on behalf of the copyright holders and contributors -"AS IS" and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, including but not limited to the implied warranties -of merchantability and fitness for a particular purpose. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE for any direct, indirect, incidental, special, exemplary, or consequential damages, -including but not limited to procurement of substitute goods or services; loss of use, data, or profits, -or business interruption, however caused and on any theory of liability, whether in contract, strict -liability, or tort (including negligence), arising in any way out of the use of this software, even if -advised of the possibility of such damage. - -5.    CONTACT INFORMATION - -Fraunhofer Institute for Integrated Circuits IIS -Attention: Audio and Multimedia Departments - FDK AAC LL -Am Wolfsmantel 33 -91058 Erlangen, Germany - -www.iis.fraunhofer.de/amm -amm-info@iis.fraunhofer.de ------------------------------------------------------------------------------------------------------------ */ - -/***************************  MPEG AAC Audio Encoder  ************************* - -   Initial author:       R. Boehm -   contents/description: huffman codeword reordering -                         based on source from aacErrRobTrans - -******************************************************************************/ - -#include "aacenc_hcr.h" - diff --git a/libAACenc/src/aacenc_hcr.h b/libAACenc/src/aacenc_hcr.h deleted file mode 100644 index 934247a..0000000 --- a/libAACenc/src/aacenc_hcr.h +++ /dev/null @@ -1,96 +0,0 @@ - -/* ----------------------------------------------------------------------------------------------------------- -Software License for The Fraunhofer FDK AAC Codec Library for Android - -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. -  All rights reserved. - - 1.    INTRODUCTION -The Fraunhofer FDK AAC Codec Library for Android ("FDK AAC Codec") is software that implements -the MPEG Advanced Audio Coding ("AAC") encoding and decoding scheme for digital audio. -This FDK AAC Codec software is intended to be used on a wide variety of Android devices. - -AAC's HE-AAC and HE-AAC v2 versions are regarded as today's most efficient general perceptual -audio codecs. AAC-ELD is considered the best-performing full-bandwidth communications codec by -independent studies and is widely deployed. AAC has been standardized by ISO and IEC as part -of the MPEG specifications. - -Patent licenses for necessary patent claims for the FDK AAC Codec (including those of Fraunhofer) -may be obtained through Via Licensing (www.vialicensing.com) or through the respective patent owners -individually for the purpose of encoding or decoding bit streams in products that are compliant with -the ISO/IEC MPEG audio standards. Please note that most manufacturers of Android devices already license -these patent claims through Via Licensing or directly from the patent owners, and therefore FDK AAC Codec -software may already be covered under those patent licenses when it is used for those licensed purposes only. - -Commercially-licensed AAC software libraries, including floating-point versions with enhanced sound quality, -are also available from Fraunhofer. Users are encouraged to check the Fraunhofer website for additional -applications information and documentation. - -2.    COPYRIGHT LICENSE - -Redistribution and use in source and binary forms, with or without modification, are permitted without -payment of copyright license fees provided that you satisfy the following conditions: - -You must retain the complete text of this software license in redistributions of the FDK AAC Codec or -your modifications thereto in source code form. - -You must retain the complete text of this software license in the documentation and/or other materials -provided with redistributions of the FDK AAC Codec or your modifications thereto in binary form. -You must make available free of charge copies of the complete source code of the FDK AAC Codec and your -modifications thereto to recipients of copies in binary form. - -The name of Fraunhofer may not be used to endorse or promote products derived from this library without -prior written permission. - -You may not charge copyright license fees for anyone to use, copy or distribute the FDK AAC Codec -software or your modifications thereto. - -Your modified versions of the FDK AAC Codec must carry prominent notices stating that you changed the software -and the date of any change. For modified versions of the FDK AAC Codec, the term -"Fraunhofer FDK AAC Codec Library for Android" must be replaced by the term -"Third-Party Modified Version of the Fraunhofer FDK AAC Codec Library for Android." - -3.    NO PATENT LICENSE - -NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without limitation the patents of Fraunhofer, -ARE GRANTED BY THIS SOFTWARE LICENSE. Fraunhofer provides no warranty of patent non-infringement with -respect to this software. - -You may use this FDK AAC Codec software or modifications thereto only for purposes that are authorized -by appropriate patent licenses. - -4.    DISCLAIMER - -This FDK AAC Codec software is provided by Fraunhofer on behalf of the copyright holders and contributors -"AS IS" and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, including but not limited to the implied warranties -of merchantability and fitness for a particular purpose. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE for any direct, indirect, incidental, special, exemplary, or consequential damages, -including but not limited to procurement of substitute goods or services; loss of use, data, or profits, -or business interruption, however caused and on any theory of liability, whether in contract, strict -liability, or tort (including negligence), arising in any way out of the use of this software, even if -advised of the possibility of such damage. - -5.    CONTACT INFORMATION - -Fraunhofer Institute for Integrated Circuits IIS -Attention: Audio and Multimedia Departments - FDK AAC LL -Am Wolfsmantel 33 -91058 Erlangen, Germany - -www.iis.fraunhofer.de/amm -amm-info@iis.fraunhofer.de ------------------------------------------------------------------------------------------------------------ */ - -/***************************  MPEG AAC Audio Encoder  ************************* - -   Initial author:       R. Boehm -   contents/description: huffman codeword reordering -                         based on source from aacErrRobTrans - -******************************************************************************/ - -#ifndef _AACENC_HCR -#define _AACENC_HCR_H - - -#endif  /* ifndef _AACENC_HCR */ diff --git a/libAACenc/src/aacenc_lib.cpp b/libAACenc/src/aacenc_lib.cpp index 63563fd..02f83bf 100644 --- a/libAACenc/src/aacenc_lib.cpp +++ b/libAACenc/src/aacenc_lib.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -98,7 +98,7 @@ amm-info@iis.fraunhofer.de  /* Encoder library info */  #define AACENCODER_LIB_VL0 3  #define AACENCODER_LIB_VL1 4 -#define AACENCODER_LIB_VL2 12 +#define AACENCODER_LIB_VL2 14  #define AACENCODER_LIB_TITLE "AAC Encoder"  #ifdef __ANDROID__  #define AACENCODER_LIB_BUILD_DATE "" @@ -303,7 +303,7 @@ static AACENC_ERROR eldSbrConfigurator(      int i, cfgIdx = -1;      const ULONG channelBitrate = totalBitrate / FDKaacEnc_GetChannelModeConfiguration(channelMode)->nChannelsEff; -    for (i=0; i<(sizeof(eldSbrAutoConfigTab)/sizeof(ELD_SBR_CONFIGURATOR)); i++) { +    for (i=0; i<(int)(sizeof(eldSbrAutoConfigTab)/sizeof(ELD_SBR_CONFIGURATOR)); i++) {        if ( (samplingRate <= eldSbrAutoConfigTab[i].samplingRate)          && (channelBitrate >= eldSbrAutoConfigTab[i].bitrateRange) )        { @@ -914,7 +914,7 @@ AACENC_ERROR FDKaacEnc_AdjustEncSettings(HANDLE_AACENCODER hAacEncoder,      }      else {        /* SBR ratio has been set by the user, so use it. */ -      hAacConfig->sbrRatio = config->userSbrRatio; +      hAacConfig->sbrRatio = isSbrActive(hAacConfig) ? config->userSbrRatio : 0;      }      { @@ -1998,7 +1998,7 @@ AACENC_ERROR aacEncoder_SetParam(          break;      case AACENC_METADATA_MODE:          if ((UINT)settings->userMetaDataMode != value) { -            if ( !((value>=0) && (value<=2)) ) { +            if ( !(((INT)value>=0) && ((INT)value<=2)) ) {                  err = AACENC_INVALID_CONFIG;                  break;              } diff --git a/libAACenc/src/adj_thr.cpp b/libAACenc/src/adj_thr.cpp index 6433633..69a70b4 100644 --- a/libAACenc/src/adj_thr.cpp +++ b/libAACenc/src/adj_thr.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -130,14 +130,14 @@ the crash recovery strategy will be activated once.  typedef struct {    INT                 bitrate; -  LONG                bits2PeFactor_mono; -  LONG                bits2PeFactor_mono_slope; -  LONG                bits2PeFactor_stereo; -  LONG                bits2PeFactor_stereo_slope; -  LONG                bits2PeFactor_mono_scfOpt; -  LONG                bits2PeFactor_mono_scfOpt_slope; -  LONG                bits2PeFactor_stereo_scfOpt; -  LONG                bits2PeFactor_stereo_scfOpt_slope; +  ULONG               bits2PeFactor_mono; +  ULONG               bits2PeFactor_mono_slope; +  ULONG               bits2PeFactor_stereo; +  ULONG               bits2PeFactor_stereo_slope; +  ULONG               bits2PeFactor_mono_scfOpt; +  ULONG               bits2PeFactor_mono_scfOpt_slope; +  ULONG               bits2PeFactor_stereo_scfOpt; +  ULONG               bits2PeFactor_stereo_scfOpt_slope;  } BIT_PE_SFAC; diff --git a/libAACenc/src/psy_main.cpp b/libAACenc/src/psy_main.cpp index 59193c7..1c593f8 100644 --- a/libAACenc/src/psy_main.cpp +++ b/libAACenc/src/psy_main.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -447,7 +447,7 @@ AAC_ENCODER_ERROR FDKaacEnc_psyMain(INT                 channels,                                      INT                  totalChannels                                     )  { -    INT commonWindow = 1; +    const INT commonWindow = 1;      INT maxSfbPerGroup[(2)];      INT mdctSpectrum_e;      INT ch;   /* counts through channels          */ @@ -815,7 +815,7 @@ AAC_ENCODER_ERROR FDKaacEnc_psyMain(INT                 channels,                        &hThisPsyConf[1]->tnsConf);              } -            FDK_ASSERT(commonWindow=1); /* all checks for TNS do only work for common windows (which is always set)*/ +            FDK_ASSERT(1==commonWindow); /* all checks for TNS do only work for common windows (which is always set)*/              for(w = 0; w < nWindows[0]; w++)              {                  if (isShortWindow[0]) diff --git a/libAACenc/src/qc_main.cpp b/libAACenc/src/qc_main.cpp index b74510a..278bcb2 100644 --- a/libAACenc/src/qc_main.cpp +++ b/libAACenc/src/qc_main.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -107,14 +107,11 @@ typedef struct {  } TAB_VBR_QUAL_FACTOR;  static const TAB_VBR_QUAL_FACTOR tableVbrQualFactor[] = { -  {QCDATA_BR_MODE_CBR,   FL2FXCONST_DBL(0.00f)},    {QCDATA_BR_MODE_VBR_1, FL2FXCONST_DBL(0.160f)}, /* 32 kbps mono   AAC-LC + SBR + PS */    {QCDATA_BR_MODE_VBR_2, FL2FXCONST_DBL(0.148f)}, /* 64 kbps stereo AAC-LC + SBR      */    {QCDATA_BR_MODE_VBR_3, FL2FXCONST_DBL(0.135f)}, /* 80 - 96 kbps stereo AAC-LC       */    {QCDATA_BR_MODE_VBR_4, FL2FXCONST_DBL(0.111f)}, /* 128 kbps stereo AAC-LC           */ -  {QCDATA_BR_MODE_VBR_5, FL2FXCONST_DBL(0.070f)}, /* 192 kbps stereo AAC-LC           */ -  {QCDATA_BR_MODE_SFR,   FL2FXCONST_DBL(0.00f)}, -  {QCDATA_BR_MODE_FF,    FL2FXCONST_DBL(0.00f)} +  {QCDATA_BR_MODE_VBR_5, FL2FXCONST_DBL(0.070f)}  /* 192 kbps stereo AAC-LC           */  };  static INT isConstantBitrateMode( @@ -369,6 +366,7 @@ QCNew_bail:  AAC_ENCODER_ERROR FDKaacEnc_QCInit(QC_STATE *hQC,                                     struct QC_INIT *init)  { +  int i;    hQC->maxBitsPerFrame = init->maxBits;    hQC->minBitsPerFrame = init->minBits;    hQC->nElements       = init->channelMapping->nElements; @@ -399,25 +397,12 @@ AAC_ENCODER_ERROR FDKaacEnc_QCInit(QC_STATE *hQC,                              (init->averageBits/init->nSubFrames) - hQC->globHdrBits,                              hQC->maxBitsPerFrame/init->channelMapping->nChannelsEff); -  switch(hQC->bitrateMode){ -    case QCDATA_BR_MODE_CBR: -    case QCDATA_BR_MODE_VBR_1: -    case QCDATA_BR_MODE_VBR_2: -    case QCDATA_BR_MODE_VBR_3: -    case QCDATA_BR_MODE_VBR_4: -    case QCDATA_BR_MODE_VBR_5: -    case QCDATA_BR_MODE_SFR: -    case QCDATA_BR_MODE_FF: -      if((int)hQC->bitrateMode < (int)(sizeof(tableVbrQualFactor)/sizeof(TAB_VBR_QUAL_FACTOR))){ -        hQC->vbrQualFactor = (FIXP_DBL)tableVbrQualFactor[hQC->bitrateMode].vbrQualFactor; -      } else { -        hQC->vbrQualFactor = FL2FXCONST_DBL(0.f); /* default setting */ -      } -      break; -    case QCDATA_BR_MODE_INVALID: -    default: -      hQC->vbrQualFactor = FL2FXCONST_DBL(0.f); +  hQC->vbrQualFactor = FL2FXCONST_DBL(0.f); +  for (i=0; i<(int)(sizeof(tableVbrQualFactor)/sizeof(TAB_VBR_QUAL_FACTOR)); i++) { +    if (hQC->bitrateMode==tableVbrQualFactor[i].bitrateMode) { +      hQC->vbrQualFactor = (FIXP_DBL)tableVbrQualFactor[i].vbrQualFactor;        break; +    }    }    FDKaacEnc_AdjThrInit( diff --git a/libFDK/src/FDK_core.cpp b/libFDK/src/FDK_core.cpp index a706eb0..cccb925 100644 --- a/libFDK/src/FDK_core.cpp +++ b/libFDK/src/FDK_core.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -93,7 +93,7 @@ amm-info@iis.fraunhofer.de  /* FDK tools library info */  #define FDK_TOOLS_LIB_VL0 2  #define FDK_TOOLS_LIB_VL1 3 -#define FDK_TOOLS_LIB_VL2 2 +#define FDK_TOOLS_LIB_VL2 3  #define FDK_TOOLS_LIB_TITLE "FDK Tools"  #ifdef __ANDROID__  #define FDK_TOOLS_LIB_BUILD_DATE "" diff --git a/libFDK/src/arm/qmf_arm.cpp b/libFDK/src/arm/qmf_arm.cpp index 0c0ce80..fbeebfb 100644 --- a/libFDK/src/arm/qmf_arm.cpp +++ b/libFDK/src/arm/qmf_arm.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -482,42 +482,42 @@ static void qmfSynPrototypeFirSlot1_filter(FIXP_QMF *RESTRICT realSlot,       B = p_flt[4];                        /* Bottom=[8] Top=[9]     */       A = p_fltm[3];                       /* Bottom=[316] Top=[317] */       sta0 = sta[0];                       /* save state[0]          */ -     *sta++ = SMLAWT( sta[1], imag, B );  /* index=9...........319  */ -     *sta++ = SMLAWB( sta[1], real, A );  /* index=316...........6  */ -     *sta++ = SMLAWB( sta[1], imag, B );  /* index=8,18,    ...318  */ +     sta[0] = SMLAWT( sta[1], imag, B ); sta++; /* index=9...........319  */ +     sta[0] = SMLAWB( sta[1], real, A ); sta++; /* index=316...........6  */ +     sta[0] = SMLAWB( sta[1], imag, B ); sta++; /* index=8,18,    ...318  */       B = p_flt[3];                        /* Bottom=[6] Top=[7]     */ -     *sta++ = SMLAWT( sta[1], real, A );  /* index=317...........7  */ +     sta[0] = SMLAWT( sta[1], real, A ); sta++; /* index=317...........7  */       A = p_fltm[4];                       /* Bottom=[318] Top=[319] */ -     *sta++ = SMLAWT( sta[1], imag, B );  /* index=7...........317  */ -     *sta++ = SMLAWB( sta[1], real, A );  /* index=318...........8  */ -     *sta++ = SMLAWB( sta[1], imag, B );  /* index=6...........316  */ +     sta[0] = SMLAWT( sta[1], imag, B ); sta++; /* index=7...........317  */ +     sta[0] = SMLAWB( sta[1], real, A ); sta++; /* index=318...........8  */ +     sta[0] = SMLAWB( sta[1], imag, B ); sta++; /* index=6...........316  */       B = p_flt[2];                        /* Bottom=[X] Top=[5]     */ -     *sta++ = SMLAWT( sta[1], real, A );  /* index=9...........319  */ +     sta[0] = SMLAWT( sta[1], real, A ); sta++; /* index=9...........319  */       A = p_fltm[2];                       /* Bottom=[X] Top=[315]   */ -     *sta++ =         SMULWT( imag, B );  /* index=5,15, ...   315  */ +     sta[0] =         SMULWT( imag, B ); sta++; /* index=5,15, ...   315  */       result = SMLAWT( sta0,   real, A );  /* index=315...........5  */ -     *pMyTimeOut++ = result; +     pMyTimeOut[0] = result; pMyTimeOut++;       real = *--realSlot;       imag = *--imagSlot;       A = p_fltm[0];                       /* Bottom=[310] Top=[311] */       B = p_flt[7];                        /* Bottom=[14]  Top=[15]  */       result = SMLAWB( sta[0], real, A );  /* index=310...........0  */ -     *sta++ = SMLAWB( sta[1], imag, B );  /* index=14..........324  */ -     *pMyTimeOut++ = result; +     sta[0] = SMLAWB( sta[1], imag, B ); sta++; /* index=14..........324  */ +     pMyTimeOut[0] = result; pMyTimeOut++;       B = p_flt[6];                        /* Bottom=[12]  Top=[13]  */ -     *sta++ = SMLAWT( sta[1], real, A );  /* index=311...........1  */ +     sta[0] = SMLAWT( sta[1], real, A ); sta++; /* index=311...........1  */       A = p_fltm[1];                       /* Bottom=[312] Top=[313] */ -     *sta++ = SMLAWT( sta[1], imag, B );  /* index=13..........323  */ -     *sta++ = SMLAWB( sta[1], real, A );  /* index=312...........2  */ -     *sta++ = SMLAWB( sta[1], imag, B );  /* index=12..........322  */ -     *sta++ = SMLAWT( sta[1], real, A );  /* index=313...........3  */ +     sta[0] = SMLAWT( sta[1], imag, B ); sta++; /* index=13..........323  */ +     sta[0] = SMLAWB( sta[1], real, A ); sta++; /* index=312...........2  */ +     sta[0] = SMLAWB( sta[1], imag, B ); sta++; /* index=12..........322  */ +     sta[0] = SMLAWT( sta[1], real, A ); sta++; /* index=313...........3  */       A = p_fltm[2];                       /* Bottom=[314] Top=[315] */       B = p_flt[5];                        /* Bottom=[10]  Top=[11]  */ -     *sta++ = SMLAWT( sta[1], imag, B );  /* index=11..........321  */ -     *sta++ = SMLAWB( sta[1], real, A );  /* index=314...........4  */ -     *sta++ =         SMULWB( imag, B );  /* index=10..........320  */ +     sta[0] = SMLAWT( sta[1], imag, B ); sta++; /* index=11..........321  */ +     sta[0] = SMLAWB( sta[1], real, A ); sta++; /* index=314...........4  */ +     sta[0] =         SMULWB( imag, B ); sta++; /* index=10..........320  */       p_flt    += 5; @@ -566,21 +566,21 @@ INT qmfSynPrototypeFirSlot2(       A = p_fltm[0];                       /* Bottom=[310] Top=[311] */       B = p_flt[7];                        /* Bottom=[14]  Top=[15]  */       result = SMLAWB( sta[0], real, A );  /* index=310...........0  */ -     *sta++ = SMLAWB( sta[1], imag, B );  /* index=14..........324  */ +     sta[0] = SMLAWB( sta[1], imag, B ); sta++; /* index=14..........324  */       B = p_flt[6];                        /* Bottom=[12]  Top=[13]  */ -     *sta++ = SMLAWT( sta[1], real, A );  /* index=311...........1  */ +     sta[0] = SMLAWT( sta[1], real, A ); sta++; /* index=311...........1  */       A = p_fltm[1];                       /* Bottom=[312] Top=[313] */ -     *sta++ = SMLAWT( sta[1], imag, B );  /* index=13..........323  */ -     *sta++ = SMLAWB( sta[1], real, A );  /* index=312...........2  */ -     *sta++ = SMLAWB( sta[1], imag, B );  /* index=12..........322  */ -     *sta++ = SMLAWT( sta[1], real, A );  /* index=313...........3  */ +     sta[0] = SMLAWT( sta[1], imag, B ); sta++; /* index=13..........323  */ +     sta[0] = SMLAWB( sta[1], real, A ); sta++; /* index=312...........2  */ +     sta[0] = SMLAWB( sta[1], imag, B ); sta++; /* index=12..........322  */ +     sta[0] = SMLAWT( sta[1], real, A ); sta++; /* index=313...........3  */       A = p_fltm[2];                       /* Bottom=[314] Top=[315] */       B = p_flt[5];                        /* Bottom=[10]  Top=[11]  */ -     *sta++ = SMLAWT( sta[1], imag, B );  /* index=11..........321  */ -     *sta++ = SMLAWB( sta[1], real, A );  /* index=314...........4  */ -     *sta++ =         SMULWB( imag, B );  /* index=10..........320  */ +     sta[0] = SMLAWT( sta[1], imag, B ); sta++; /* index=11..........321  */ +     sta[0] = SMLAWB( sta[1], real, A ); sta++; /* index=314...........4  */ +     sta[0] =         SMULWB( imag, B ); sta++; /* index=10..........320  */ -     *pMyTimeOut++ = result; +     pMyTimeOut[0] = result; pMyTimeOut++;       p_fltm   -= 5;       p_flt    += 5; @@ -610,8 +610,8 @@ INT qmfSynPrototypeFirSlot2(      {        FIXP_DBL result1, result2; -      result1 = *pMyTimeOut++; -      result2 = *pMyTimeOut++; +      result1 = pMyTimeOut[0]; pMyTimeOut++; +      result2 = pMyTimeOut[0]; pMyTimeOut++;        result1 = fMult(result1,gain);        timeOut -= stride; @@ -635,8 +635,8 @@ INT qmfSynPrototypeFirSlot2(        timeOut[0] = result2 << scale;  #endif -      result1 = *pMyTimeOut++; -      result2 = *pMyTimeOut++; +      result1 = pMyTimeOut[0]; pMyTimeOut++; +      result2 = pMyTimeOut[0]; pMyTimeOut++;        result1 = fMult(result1,gain);        timeOut -= stride; @@ -666,8 +666,8 @@ INT qmfSynPrototypeFirSlot2(      for (no_channels>>=2; no_channels--;)      {        FIXP_DBL result1, result2; -      result1 = *pMyTimeOut++; -      result2 = *pMyTimeOut++; +      result1 = pMyTimeOut[0]; pMyTimeOut++; +      result2 = pMyTimeOut[0]; pMyTimeOut++;        timeOut -= stride;        if (result1 < 0)        result1 += add_neg;        if (result1 < max_neg)  result1 = max_neg; @@ -688,8 +688,8 @@ INT qmfSynPrototypeFirSlot2(        timeOut[0] = result2 << scale;  #endif -      result1 = *pMyTimeOut++; -      result2 = *pMyTimeOut++; +      result1 = pMyTimeOut[0]; pMyTimeOut++; +      result2 = pMyTimeOut[0]; pMyTimeOut++;        timeOut -= stride;        if (result1 < 0)        result1 += add_neg;        if (result1 < max_neg)  result1 = max_neg; diff --git a/libSBRenc/src/bit_sbr.cpp b/libSBRenc/src/bit_sbr.cpp index 963aeff..9200e01 100644 --- a/libSBRenc/src/bit_sbr.cpp +++ b/libSBRenc/src/bit_sbr.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -283,9 +283,7 @@ void sbrEncoder_GetHeader(SBR_ENCODER   *sbrEncoder,                            INT            element_index,                            int            fSendHeaders)  { -  int bits; - -  bits = encodeSbrHeaderData (&sbrEncoder->sbrElement[element_index]->sbrHeaderData, hBs); +  encodeSbrHeaderData (&sbrEncoder->sbrElement[element_index]->sbrHeaderData, hBs);    if (fSendHeaders == 0) {      /* Prevent header being embedded into the SBR payload. */ diff --git a/libSBRenc/src/ps_bitenc.cpp b/libSBRenc/src/ps_bitenc.cpp index b1fe12e..420ea15 100644 --- a/libSBRenc/src/ps_bitenc.cpp +++ b/libSBRenc/src/ps_bitenc.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -261,21 +261,23 @@ static const UINT opdDeltaTime_Code[] =    0x00000001,  0x00000002,  0x00000001,  0x00000007,  0x00000006,  0000000000,  0x00000002,  0x00000003  }; -static const INT psBands[] = +static INT getNoBands(const INT mode)  { -  PS_BANDS_COARSE, -  PS_BANDS_MID -}; - -static INT getNoBands(PS_RESOLUTION mode) -{ -  if(mode>=6) -    return 0; +  INT noBands = 0; -  if(mode>=3) -    mode = (PS_RESOLUTION)(mode-3); +  switch (mode) { +    case 0: case 3: /* coarse */ +      noBands = PS_BANDS_COARSE; +      break; +    case 1: case 4: /* mid */ +      noBands = PS_BANDS_MID; +      break; +    case 2: case 5: /* fine not supported */ +    default:        /* coarse as default */ +      noBands = PS_BANDS_COARSE; +  } -  return psBands[mode]; +  return noBands;  }  static INT getIIDRes(INT iidMode) @@ -524,7 +526,7 @@ static INT encodeIpdOpd(HANDLE_PS_OUT        psOut,        bitCnt += FDKsbrEnc_EncodeIpd( hBitBuf,                             psOut->ipd[env],                             ipdLast, -                           getNoBands((PS_RESOLUTION)psOut->iidMode), +                           getNoBands(psOut->iidMode),                             psOut->deltaIPD[env],                             &error); @@ -532,7 +534,7 @@ static INT encodeIpdOpd(HANDLE_PS_OUT        psOut,        bitCnt += FDKsbrEnc_EncodeOpd( hBitBuf,                             psOut->opd[env],                             opdLast, -                           getNoBands((PS_RESOLUTION)psOut->iidMode), +                           getNoBands(psOut->iidMode),                             psOut->deltaOPD[env],                             &error );      } @@ -661,7 +663,7 @@ INT FDKsbrEnc_WritePSBitstream(const HANDLE_PS_OUT   psOut,          bitCnt += FDKsbrEnc_EncodeIid( hBitBuf,                               psOut->iid[env],                               iidLast, -                             getNoBands((PS_RESOLUTION)psOut->iidMode), +                             getNoBands(psOut->iidMode),                               (PS_IID_RESOLUTION)getIIDRes(psOut->iidMode),                               psOut->deltaIID[env],                               &error ); @@ -677,7 +679,7 @@ INT FDKsbrEnc_WritePSBitstream(const HANDLE_PS_OUT   psOut,          bitCnt += FDKsbrEnc_EncodeIcc( hBitBuf,                               psOut->icc[env],                               iccLast, -                             getNoBands((PS_RESOLUTION)psOut->iccMode), +                             getNoBands(psOut->iccMode),                               psOut->deltaICC[env],                               &error); diff --git a/libSBRenc/src/ps_encode.cpp b/libSBRenc/src/ps_encode.cpp index 2ae2788..fec39e8 100644 --- a/libSBRenc/src/ps_encode.cpp +++ b/libSBRenc/src/ps_encode.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -149,21 +149,21 @@ typedef enum {  static const FIXP_DBL iidQuant_fx[15] = { -  0xce000000, 0xdc000000, 0xe4000000, 0xec000000, 0xf2000000, 0xf8000000, 0xfc000000, 0x00000000, -  0x04000000, 0x08000000, 0x0e000000, 0x14000000, 0x1c000000, 0x24000000, 0x32000000 +  (FIXP_DBL)0xce000000, (FIXP_DBL)0xdc000000, (FIXP_DBL)0xe4000000, (FIXP_DBL)0xec000000, (FIXP_DBL)0xf2000000, (FIXP_DBL)0xf8000000, (FIXP_DBL)0xfc000000, (FIXP_DBL)0x00000000, +  (FIXP_DBL)0x04000000, (FIXP_DBL)0x08000000, (FIXP_DBL)0x0e000000, (FIXP_DBL)0x14000000, (FIXP_DBL)0x1c000000, (FIXP_DBL)0x24000000, (FIXP_DBL)0x32000000  };  static const FIXP_DBL iidQuantFine_fx[31] = { -  0x9c000001, 0xa6000001, 0xb0000001, 0xba000001, 0xc4000000, 0xce000000, 0xd4000000, 0xda000000, -  0xe0000000, 0xe6000000, 0xec000000, 0xf0000000, 0xf4000000, 0xf8000000, 0xfc000000, 0x00000000, -  0x04000000, 0x08000000, 0x0c000000, 0x10000000, 0x14000000, 0x1a000000, 0x20000000, 0x26000000, -  0x2c000000, 0x32000000, 0x3c000000, 0x45ffffff, 0x4fffffff, 0x59ffffff, 0x63ffffff +  (FIXP_DBL)0x9c000001, (FIXP_DBL)0xa6000001, (FIXP_DBL)0xb0000001, (FIXP_DBL)0xba000001, (FIXP_DBL)0xc4000000, (FIXP_DBL)0xce000000, (FIXP_DBL)0xd4000000, (FIXP_DBL)0xda000000, +  (FIXP_DBL)0xe0000000, (FIXP_DBL)0xe6000000, (FIXP_DBL)0xec000000, (FIXP_DBL)0xf0000000, (FIXP_DBL)0xf4000000, (FIXP_DBL)0xf8000000, (FIXP_DBL)0xfc000000, (FIXP_DBL)0x00000000, +  (FIXP_DBL)0x04000000, (FIXP_DBL)0x08000000, (FIXP_DBL)0x0c000000, (FIXP_DBL)0x10000000, (FIXP_DBL)0x14000000, (FIXP_DBL)0x1a000000, (FIXP_DBL)0x20000000, (FIXP_DBL)0x26000000, +  (FIXP_DBL)0x2c000000, (FIXP_DBL)0x32000000, (FIXP_DBL)0x3c000000, (FIXP_DBL)0x45ffffff, (FIXP_DBL)0x4fffffff, (FIXP_DBL)0x59ffffff, (FIXP_DBL)0x63ffffff  };  static const FIXP_DBL iccQuant[8] = { -  0x7fffffff, 0x77ef9d7f, 0x6babc97f, 0x4ceaf27f, 0x2f0ed3c0, 0x00000000, 0xb49ba601, 0x80000000 +  (FIXP_DBL)0x7fffffff, (FIXP_DBL)0x77ef9d7f, (FIXP_DBL)0x6babc97f, (FIXP_DBL)0x4ceaf27f, (FIXP_DBL)0x2f0ed3c0, (FIXP_DBL)0x00000000, (FIXP_DBL)0xb49ba601, (FIXP_DBL)0x80000000  };  static FDK_PSENC_ERROR InitPSData( diff --git a/libSBRenc/src/sbr_encoder.cpp b/libSBRenc/src/sbr_encoder.cpp index 464c013..221aecd 100644 --- a/libSBRenc/src/sbr_encoder.cpp +++ b/libSBRenc/src/sbr_encoder.cpp @@ -2,7 +2,7 @@  /* -----------------------------------------------------------------------------------------------------------  Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright  1995 - 2013 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. +© Copyright  1995 - 2015 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.    All rights reserved.   1.    INTRODUCTION @@ -103,7 +103,7 @@ amm-info@iis.fraunhofer.de  #define SBRENCODER_LIB_VL0 3  #define SBRENCODER_LIB_VL1 3 -#define SBRENCODER_LIB_VL2 4 +#define SBRENCODER_LIB_VL2 6 @@ -170,7 +170,6 @@ getSbrTuningTableIndex(UINT bitrate,    /*! the total bitrate in bits/sec */  {    int i, bitRateClosestLowerIndex=-1, bitRateClosestUpperIndex=-1, found = 0;    UINT bitRateClosestUpper = 0, bitRateClosestLower=DISTANCE_CEIL_VALUE; -  int isforThisCodec=0;    #define isForThisCore(i) \      ( ( sbrTuningTable[i].coreCoder == CODEC_AACLD && core == AOT_ER_AAC_ELD ) || \ @@ -854,7 +853,7 @@ FDKsbrEnc_EnvEncodeFrame(HANDLE_SBR_ENCODER   hEnvEncoder,                           int                  clearOutput              /*!< Do not consider any input signal */                          )  { -  HANDLE_SBR_ELEMENT hSbrElement = hEnvEncoder->sbrElement[iElement]; +  HANDLE_SBR_ELEMENT hSbrElement = NULL;    FDK_CRCINFO  crcInfo;    INT    crcReg;    INT    ch; | 
