diff options
Diffstat (limited to 'libFDK/include/arm')
| -rw-r--r-- | libFDK/include/arm/clz_arm.h | 122 | ||||
| -rw-r--r-- | libFDK/include/arm/cplx_mul.h | 214 | ||||
| -rw-r--r-- | libFDK/include/arm/fixmadd_arm.h | 160 | ||||
| -rw-r--r-- | libFDK/include/arm/fixmul_arm.h | 142 | ||||
| -rw-r--r-- | libFDK/include/arm/scale.h | 152 | ||||
| -rw-r--r-- | libFDK/include/arm/scramble.h | 158 | 
6 files changed, 0 insertions, 948 deletions
| diff --git a/libFDK/include/arm/clz_arm.h b/libFDK/include/arm/clz_arm.h deleted file mode 100644 index f43a7b1..0000000 --- a/libFDK/include/arm/clz_arm.h +++ /dev/null @@ -1,122 +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 ------------------------------------------------------------------------------------------------------------ */ - -/***************************  Fraunhofer IIS FDK Tools  ********************** - -   Author(s): -   Description: fixed point intrinsics - -******************************************************************************/ - -#if defined(__arm__) - -#if defined(__GNUC__) && defined(__ARM_ARCH_5TE__)	/* cppp replaced: elif */ -  /* ARM gcc*/ - -  #define FUNCTION_fixnormz_D -  #define FUNCTION_fixnorm_D - -  inline INT fixnormz_D(LONG value) -  { -    INT result; -    asm("clz %0, %1 ": "=r"(result) : "r"(value) ); -    return result; -  } - -  inline INT fixnorm_D(LONG value) -  { -    INT result; -    if (value == 0) { -      return 0; -    } -    if (value < 0) { -      value = ~value; -    } -    result =  fixnormz_D(value); -    return result - 1; -  } - -#endif /* arm toolchain */ - -#endif /* __arm__ */ - diff --git a/libFDK/include/arm/cplx_mul.h b/libFDK/include/arm/cplx_mul.h deleted file mode 100644 index 8b48031..0000000 --- a/libFDK/include/arm/cplx_mul.h +++ /dev/null @@ -1,214 +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 ------------------------------------------------------------------------------------------------------------ */ - -/***************************  Fraunhofer IIS FDK Tools  ********************** - -   Author(s): -   Description: fixed point intrinsics - -******************************************************************************/ - -#if defined(__arm__) && defined(__GNUC__)	/* cppp replaced: elif */ - -#if defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_6__) -  #define FUNCTION_cplxMultDiv2_32x16 -  #define FUNCTION_cplxMultDiv2_32x16X2 -  //#define FUNCTION_cplxMult_32x16 -  //#define FUNCTION_cplxMult_32x16X2 -#endif - -#define FUNCTION_cplxMultDiv2_32x32X2 -//#define FUNCTION_cplxMult_32x32X2 - -#ifdef FUNCTION_cplxMultDiv2_32x16 -inline void cplxMultDiv2( FIXP_DBL *c_Re, -                          FIXP_DBL *c_Im, -                          const FIXP_DBL a_Re, -                          const FIXP_DBL a_Im, -                          const FIXP_SPK wpk ) -{ -   LONG tmp1,tmp2; -   const LONG w = wpk.w; - -   asm("smulwt %0, %3, %4;\n" -       "rsb %1,%0,#0;\n" -       "smlawb %0, %2, %4, %1;\n" -       "smulwt %1, %2, %4;\n" -       "smlawb %1, %3, %4, %1;\n" -       : "=&r"(tmp1), "=&r"(tmp2) -       : "r"(a_Re), "r"(a_Im), "r"(w) -       ); - -    *c_Re = tmp1; -    *c_Im = tmp2; -} -#endif /* FUNCTION_cplxMultDiv2_32x16 */ - -#ifdef FUNCTION_cplxMultDiv2_32x16X2 -inline void cplxMultDiv2( FIXP_DBL *c_Re, -                          FIXP_DBL *c_Im, -                          const FIXP_DBL a_Re, -                          const FIXP_DBL a_Im, -                          const FIXP_SGL b_Re, -                          const FIXP_SGL b_Im) -{ -    LONG tmp1, tmp2; - -    asm("smulwb %0, %3, %5;\n"     /* %7   = -a_Im * b_Im */ -        "rsb %1,%0,#0;\n" -        "smlawb %0, %2, %4, %1;\n" /* tmp1 =  a_Re * b_Re - a_Im * b_Im */ -        "smulwb %1, %2, %5;\n"     /* %7   =  a_Re * b_Im */ -        "smlawb %1, %3, %4, %1;\n" /* tmp2 =  a_Im * b_Re + a_Re * b_Im */ -        : "=&r"(tmp1), "=&r"(tmp2) -        : "r"(a_Re), "r"(a_Im), "r"(b_Re), "r"(b_Im) -        ); - -     *c_Re = tmp1; -     *c_Im = tmp2; -} -#endif /* FUNCTION_cplxMultDiv2_32x16X2 */ - -#ifdef FUNCTION_cplxMultAddDiv2_32x16X2 -inline void cplxMultAddDiv2( FIXP_DBL *c_Re, -                             FIXP_DBL *c_Im, -                             const FIXP_DBL  a_Re, -                             const FIXP_DBL  a_Im, -                             const FIXP_SGL b_Re, -                             const FIXP_SGL b_Im) -{ -    LONG tmp1, tmp2; - -    asm("smulwb %0, %3, %5;\n" -        "rsb %1,%0,#0;\n" -        "smlawb %0, %2, %4, %1;\n" -        "smulwb %1, %2, %5;\n" -        "smlawb %1, %3, %4, %1;\n" -        : "=&r"(tmp1), "=&r"(tmp2) -        : "r"(a_Re), "r"(a_Im), "r"(b_Re), "r"(b_Im) -        ); - -     *c_Re += tmp1; -     *c_Im += tmp2; -} -#endif /* FUNCTION_cplxMultAddDiv2_32x16X2 */ - - -#ifdef FUNCTION_cplxMultDiv2_32x32X2 -inline void cplxMultDiv2( FIXP_DBL *c_Re, -                          FIXP_DBL *c_Im, -                          const FIXP_DBL a_Re, -                          const FIXP_DBL a_Im, -                          const FIXP_DBL b_Re, -                          const FIXP_DBL b_Im) -{ -    LONG tmp1, tmp2; - -#ifdef __ARM_ARCH_6__ -    asm( -       "smmul %0, %2, %4;\n"     /* tmp1  = a_Re * b_Re */ -       "smmls %0, %3, %5, %0;\n" /* tmp1 -= a_Im * b_Im */ -       "smmul %1, %2, %5;\n"     /* tmp2  = a_Re * b_Im */ -       "smmla %1, %3, %4, %1;\n" /* tmp2 += a_Im * b_Re */ -       : "=&r"(tmp1), "=&r"(tmp2) -       : "r"(a_Re), "r"(a_Im), "r"(b_Re), "r"(b_Im) -       : "r0" -       ); -#else -    LONG discard; -    asm( -       "smull %2, %0, %7, %6;\n" /* tmp1  = -a_Im * b_Im */ -       "smlal %2, %0, %3, %5;\n" /* tmp1 +=  a_Re * b_Re */ -       "smull %2, %1, %3, %6;\n" /* tmp2  =  a_Re * b_Im */ -       "smlal %2, %1, %4, %5;\n" /* tmp2 +=  a_Im * b_Re */ -       : "=&r"(tmp1), "=&r"(tmp2), "=&r"(discard) -       : "r"(a_Re), "r"(a_Im), "r"(b_Re), "r"(b_Im), "r"(-a_Im) -       ); - #endif -    *c_Re = tmp1; -    *c_Im = tmp2; -} -#endif /* FUNCTION_cplxMultDiv2_32x32X2 */ - - -#endif - diff --git a/libFDK/include/arm/fixmadd_arm.h b/libFDK/include/arm/fixmadd_arm.h deleted file mode 100644 index 111147b..0000000 --- a/libFDK/include/arm/fixmadd_arm.h +++ /dev/null @@ -1,160 +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 ------------------------------------------------------------------------------------------------------------ */ - -/***************************  Fraunhofer IIS FDK Tools  ********************** - -   Author(s): -   Description: fixed point intrinsics - -******************************************************************************/ - -#if defined(__arm__) - -  /* ############################################################################# */ -  #if defined(__GNUC__) && defined(__arm__) && !defined(__SYMBIAN32__)	/* cppp replaced: elif */ -  /* ############################################################################# */ -    /* ARM GNU GCC */ - -    #define FUNCTION_fixmadddiv2_DD - -    #ifdef __ARM_ARCH_6__ -      inline FIXP_DBL fixmadddiv2_DD (FIXP_DBL x, const FIXP_DBL a, const FIXP_DBL b) { -        INT result; -        asm  ("smmla %0, %1, %2, %3;\n" -              : "=r" (result) -              : "r" (a), "r" (b), "r"(x) ); -        return result ; -      } -      #define FUNCTION_fixmsubdiv2_DD -      inline FIXP_DBL fixmsubdiv2_DD (FIXP_DBL x, const FIXP_DBL a, const FIXP_DBL b) { -        INT result; -        asm  ("smmls %0, %1, %2, %3;\n" -              : "=r" (result) -              : "r" (a), "r" (b), "r"(x) ); -        return result ; -      } -    #else /* __ARM_ARCH_6__ */ -      inline FIXP_DBL fixmadddiv2_DD (FIXP_DBL x, const FIXP_DBL a, const FIXP_DBL b) { -        INT discard, result = x; -        asm  ("smlal %0, %1, %2, %3;\n" -              : "=r" (discard), "+r" (result) -              : "r" (a), "r" (b) ); -        return result ; -      } -    #endif /* __ARM_ARCH_6__ */ - -    #if defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_6__) - -      #define FUNCTION_fixmadddiv2_DS - -      inline FIXP_DBL fixmadddiv2_DS (FIXP_DBL x, const FIXP_DBL a, const FIXP_SGL b) { -        INT result; -        asm("smlawb %0, %1, %2, %3 " -              : "=r" (result) -              : "r" (a), "r" (b), "r" (x) ); -        return result ; -      } - -    #endif /* defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_6__) */ - -    #define FUNCTION_fixmadddiv2BitExact_DD -    #define fixmadddiv2BitExact_DD(a, b, c) fixmadddiv2_DD(a, b, c) - -    #define FUNCTION_fixmsubdiv2BitExact_DD -    inline FIXP_DBL fixmsubdiv2BitExact_DD (FIXP_DBL x, const FIXP_DBL a, const FIXP_DBL b) { -      return x - fixmuldiv2BitExact_DD(a, b); -    } - -    #define FUNCTION_fixmadddiv2BitExact_DS -    #define fixmadddiv2BitExact_DS(a, b, c) fixmadddiv2_DS(a, b, c) - -    #define FUNCTION_fixmsubdiv2BitExact_DS -    inline FIXP_DBL fixmsubdiv2BitExact_DS (FIXP_DBL x, const FIXP_DBL a, const FIXP_SGL b) { -      return x - fixmuldiv2BitExact_DS(a, b); -    } -  /* ############################################################################# */ -  #endif /* toolchain */ -  /* ############################################################################# */ - -#endif /* __arm__ */ - diff --git a/libFDK/include/arm/fixmul_arm.h b/libFDK/include/arm/fixmul_arm.h deleted file mode 100644 index 2f04705..0000000 --- a/libFDK/include/arm/fixmul_arm.h +++ /dev/null @@ -1,142 +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 ------------------------------------------------------------------------------------------------------------ */ - -/***************************  Fraunhofer IIS FDK Tools  ********************** - -   Author(s): -   Description: fixed point intrinsics - -******************************************************************************/ - -#if defined(__arm__) - -#if defined(__GNUC__) && defined(__arm__)	/* cppp replaced: elif */ -/* ARM with GNU compiler */ - -#define FUNCTION_fixmuldiv2_DD - -#define FUNCTION_fixmuldiv2BitExact_DD -#define fixmuldiv2BitExact_DD(a,b) fixmuldiv2_DD(a,b) -#define FUNCTION_fixmulBitExact_DD -#define fixmulBitExact_DD(a,b) fixmul_DD(a,b) - -#define FUNCTION_fixmuldiv2BitExact_DS -#define fixmuldiv2BitExact_DS(a,b) fixmuldiv2_DS(a,b) - -#define FUNCTION_fixmulBitExact_DS -#define fixmulBitExact_DS(a,b) fixmul_DS(a,b) - -#if defined(__ARM_ARCH_6__) || defined(__TARGET_ARCH_7E_M) -inline INT fixmuldiv2_DD (const INT a, const INT b) -{ -  INT result ; -  __asm__ ("smmul %0, %1, %2" : "=r" (result) -                              : "r" (a), "r" (b)) ; -  return result ; -} -#else -inline INT fixmuldiv2_DD (const INT a, const INT b) -{ -  INT discard, result ; -  __asm__ ("smull %0, %1, %2, %3" : "=&r" (discard), "=r" (result) -                                  : "r" (a), "r" (b)) ; -  return result ; -} -#endif - -#if defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_6__) -#define FUNCTION_fixmuldiv2_SD -inline INT fixmuldiv2_SD (const SHORT a, const INT b) -{ -  INT result ; -  __asm__ ("smulwb %0, %1, %2" -    : "=r" (result) -    : "r" (b), "r" (a)) ; -  return result ; -} -#endif - -#endif /* defined(__GNUC__) && defined(__arm__) */ - -#endif /* __arm__ */ - diff --git a/libFDK/include/arm/scale.h b/libFDK/include/arm/scale.h deleted file mode 100644 index cbb81dc..0000000 --- a/libFDK/include/arm/scale.h +++ /dev/null @@ -1,152 +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 ------------------------------------------------------------------------------------------------------------ */ - -/********************************  Fraunhofer IIS  *************************** - -   Author(s): -   Description: ARM scaling operations - -******************************************************************************/ - -#if defined(__GNUC__) /* GCC Compiler */	/* cppp replaced: elif */ - -#if defined(__ARM_ARCH_6__) - -inline static INT shiftRightSat(INT src, int scale) -{ -  INT result; -  asm( -      "ssat %0,%2,%0;\n" - -      : "=&r"(result) -      : "r"(src>>scale), "M"(SAMPLE_BITS) -      ); - -  return result; -} - -  #define SATURATE_INT_PCM_RIGHT_SHIFT(src, scale) shiftRightSat(src, scale) - -inline static INT shiftLeftSat(INT src, int scale) -{ -  INT result; -  asm( -      "ssat %0,%2,%0;\n" - -      : "=&r"(result) -      : "r"(src<<scale), "M"(SAMPLE_BITS) -      ); - -  return result; -} - -  #define SATURATE_INT_PCM_LEFT_SHIFT(src, scale)  shiftLeftSat(src, scale) - -#endif /* __ARM_ARCH_6__ */ - -#endif /* compiler selection */ - -#define FUNCTION_scaleValueInPlace -inline -void scaleValueInPlace(FIXP_DBL *value, /*!< Value */ -                       INT scalefactor   /*!< Scalefactor */ -                       ) -{ -  INT newscale; -  if ((newscale = scalefactor) >= 0) -    *value <<= newscale; -  else -    *value >>= -newscale; -} - - -  #define SATURATE_RIGHT_SHIFT(src, scale, dBits)                                                        \ -      ( (((LONG)(src) ^ ((LONG)(src) >> (DFRACT_BITS-1)))>>(scale)) > (LONG)(((1U)<<((dBits)-1))-1))     \ -          ? ((LONG)(src) >> (DFRACT_BITS-1)) ^ (LONG)(((1U)<<((dBits)-1))-1)                             \ -          : ((LONG)(src) >> (scale)) - -  #define SATURATE_LEFT_SHIFT(src, scale, dBits)                                                         \ -      ( ((LONG)(src) ^ ((LONG)(src) >> (DFRACT_BITS-1))) > ((LONG)(((1U)<<((dBits)-1))-1) >> (scale)) )  \ -          ? ((LONG)(src) >> (DFRACT_BITS-1)) ^ (LONG)(((1U)<<((dBits)-1))-1)                             \ -          : ((LONG)(src) << (scale)) - diff --git a/libFDK/include/arm/scramble.h b/libFDK/include/arm/scramble.h deleted file mode 100644 index 82d0338..0000000 --- a/libFDK/include/arm/scramble.h +++ /dev/null @@ -1,158 +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 ------------------------------------------------------------------------------------------------------------ */ - -/***************************  Fraunhofer IIS FDK Tools  ********************** - -   Author(s): -   Description: bitreversal of input data - -******************************************************************************/ - -#if defined(FUNCTION_scramble) -#if defined(__GNUC__)	/* cppp replaced: elif */ - -#define FUNCTION_scramble - -#if defined(__ARM_ARCH_5TE__) -#define USE_LDRD_STRD   /* LDRD requires 8 byte data alignment. */ -#endif - -inline void scramble(FIXP_DBL x [], INT n) { -  FDK_ASSERT(!(((INT)x)&(ALIGNMENT_DEFAULT-1))); -  asm("mov     r2, #1;\n"               /* r2(m) = 1;           */ -      "sub     r3, %1, #1;\n"           /* r3 = n-1;            */ -      "mov     r4, #0;\n"               /* r4(j) = 0;           */ - -"scramble_m_loop%=:\n"                  /* {                    */ -      "mov     r5, %1;\n"               /*  r5(k) = 1;          */ - -"scramble_k_loop%=:\n"                  /*  {                   */ -      "mov     r5, r5, lsr #1;\n"       /*   k >>= 1;           */ -      "eor     r4, r4, r5;\n"           /*   j ^=k;             */ -      "ands    r10, r4, r5;\n"           /*   r10 = r4 & r5;      */ -      "beq     scramble_k_loop%=;\n"      /*  } while (r10 == 0);  */ - -      "cmp     r4, r2;\n"               /*   if (r4 < r2) break;        */ -      "bcc     scramble_m_loop_end%=;\n" - -#ifdef USE_LDRD_STRD -      "mov     r5, r2, lsl #3;\n"       /* m(r5) = r2*4*2               */ -      "ldrd    r10, [%0, r5];\n"         /* r10 = x[r5], x7 = x[r5+1]     */ -      "mov     r6, r4, lsl #3;\n"      /* j(r6) = r4*4*2              */ -      "ldrd    r8, [%0, r6];\n"        /* r8 = x[r6], r9 = x[r6+1];  */ -      "strd    r10, [%0, r6];\n"        /* x[r6,r6+1] = r10,r11;        */ -      "strd    r8, [%0, r5];\n"         /* x[r5,r5+1] = r8,r9;          */ -#else -      "mov      r5, r2, lsl #3;\n"       /* m(r5) = r2*4*2               */ -      "ldr	r10, [%0, r5];\n" -      "mov      r6, r4, lsl #3;\n"      /* j(r6) = r4*4*2              */ -      "ldr	r11, [%0, r6];\n" - -      "str	r10, [%0, r6];\n" -      "str      r11, [%0, r5];\n" - -      "add	r5, r5, #4;" -      "ldr	r10, [%0, r5];\n" -      "add	r6, r6, #4;" -      "ldr      r11, [%0, r6];\n" -      "str      r10, [%0, r6];\n" -      "str      r11, [%0, r5];\n" -#endif -"scramble_m_loop_end%=:\n" -      "add     r2, r2, #1;\n"           /* r2++;                        */ -      "cmp     r2, r3;\n" -      "bcc     scramble_m_loop%=;\n"      /* } while (r2(m) < r3(n-1));   */ -       : -       : "r"(x), "r"(n) -#ifdef USE_LDRD_STRD -       : "r2","r3", "r4","r5", "r10","r11", "r8","r9", "r6" ); -#else -       : "r2","r3", "r4","r5", "r10","r11", "r6" ); -#endif -} -#else -/* Force C implementation if no assembler version available. */ -#undef FUNCTION_scramble -#endif	/* Toolchain selection. */ - -#endif	/* defined(FUNCTION_scramble) */ | 
