diff --git a/libFDK/include/aarch64/cplx_mul.h b/libFDK/include/aarch64/cplx_mul.h deleted file mode 100644 index ea8e79f..0000000 --- a/libFDK/include/aarch64/cplx_mul.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(__aarch64__) || defined(__AARCH64EL__) && defined(__GNUC__) /* cppp replaced: elif */ - -#define FUNCTION_cplxMultDiv2_32x32X2 -//#define FUNCTION_cplxMult_32x32X2 - -#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; - - - asm( - "smulh %w0, %w2, %w4;\n" /* tmp1 = a_Re * b_Re */ - "msub %w0, %w3, %w5, %w0;\n" /* tmp1 -= a_Im * b_Im */ - "smulh %w1, %w2, %w5;\n" /* tmp2 = a_Re * b_Im */ - "madd %w1, %w3, %w4, %w1;\n" /* tmp2 += a_Im * b_Re */ - : "=&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_32x32X2 */ - -#endif - diff --git a/libFDK/include/aarch64/fixmadd_aarch64.h b/libFDK/include/aarch64/fixmadd_aarch64.h deleted file mode 100644 index f35c202..0000000 --- a/libFDK/include/aarch64/fixmadd_aarch64.h +++ /dev/null @@ -1,130 +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(__aarch64__) || defined(__AARCH64EL__) - - /* ############################################################################# */ - #if defined(__GNUC__) /* cppp replaced: elif */ - /* ############################################################################# */ - /* AARCH64 GNU GCC */ - - #define FUNCTION_fixmadddiv2_DD - - inline FIXP_DBL fixmadddiv2_DD (FIXP_DBL x, const FIXP_DBL a, const FIXP_DBL b) { - INT result; - asm ("smull %0, %w1, %w2\n" - "asr %0, %0, #32\n" - "add %w0, %w0, %w3\n" - : "=&r" (result) - : "r" (a), "r" (b), "r"(x) ); - return result ; - } - - #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 /* __aarch64__ */ - diff --git a/libFDK/include/aarch64/fixmul_aarch64.h b/libFDK/include/aarch64/fixmul_aarch64.h deleted file mode 100644 index e101433..0000000 --- a/libFDK/include/aarch64/fixmul_aarch64.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(__aarch64__) || defined(__AARCH64EL__) - -#if defined(__GNUC__) /* 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) - -inline INT fixmuldiv2_DD (const INT a, const INT b) -{ - INT result ; - __asm__ ("smull %0, %w1, %w2\n" - "asr %0, %0, #32\n" - : "=r" (result) - : "r" (a), "r" (b)) ; - return result ; -} - -#endif /* defined(__GNUC__) */ - -#endif /* __aarch64__ */ - diff --git a/libFDK/include/cplx_mul.h b/libFDK/include/cplx_mul.h index af58d48..ce5c9f7 100644 --- a/libFDK/include/cplx_mul.h +++ b/libFDK/include/cplx_mul.h @@ -99,9 +99,6 @@ amm-info@iis.fraunhofer.de #elif defined(__GNUC__) && defined(__mips__) && __mips_isa_rev < 6 #include "mips/cplx_mul.h" -#elif defined(__aarch64__) || defined(__AARCH64EL__) -#include "aarch64/cplx_mul.h" - #endif /* #if defined all cores: bfin, arm, etc. */ /* ############################################################################# */ diff --git a/libFDK/include/fixmadd.h b/libFDK/include/fixmadd.h index ff3cf35..851b7a2 100644 --- a/libFDK/include/fixmadd.h +++ b/libFDK/include/fixmadd.h @@ -101,9 +101,6 @@ amm-info@iis.fraunhofer.de #elif defined(__mips__) /* cppp replaced: elif */ #include "mips/fixmadd_mips.h" -#elif defined(__aarch64__) || defined(__AARCH64EL__) /* cppp replaced: elif */ -#include "aarch64/fixmadd_aarch64.h" - #endif /* all cores */ /************************************************************************* diff --git a/libFDK/include/fixmul.h b/libFDK/include/fixmul.h index 9e5e915..de1220f 100644 --- a/libFDK/include/fixmul.h +++ b/libFDK/include/fixmul.h @@ -108,7 +108,7 @@ amm-info@iis.fraunhofer.de #include "ppc/fixmul_ppc.h" #elif defined(__aarch64__) || defined(__AARCH64EL__) -#include "aarch64/fixmul_aarch64.h" +#define NO_WARN_FIXMUL #endif /* all cores */ @@ -120,11 +120,13 @@ amm-info@iis.fraunhofer.de #if !defined(FUNCTION_fixmuldiv2_DD) #define FUNCTION_fixmuldiv2_DD +#ifndef NO_WARN_FIXMUL #if defined(_MSC_VER) || defined(__CC_ARM) || defined(__ANALOG_EXTENSIONS__) || defined(__TI_COMPILER_VERSION__) #pragma message ("Extremely slow implementation of fixmuldiv2_DD !!") #else #warning Extremely slow implementation of fixmuldiv2_DD !! #endif +#endif inline LONG fixmuldiv2_DD (const LONG a, const LONG b) { return (LONG) ((((INT64)a) * b) >> 32) ; @@ -133,11 +135,13 @@ inline LONG fixmuldiv2_DD (const LONG a, const LONG b) #if !defined(FUNCTION_fixmuldiv2BitExact_DD) #define FUNCTION_fixmuldiv2BitExact_DD +#ifndef NO_WARN_FIXMUL #if defined(_MSC_VER) || defined(__CC_ARM) || defined(__ANALOG_EXTENSIONS__) || defined(__TI_COMPILER_VERSION__) #pragma message ("Extremely slow implementation of fixmuldiv2BitExact_DD !!") #else #warning Extremely slow implementation of fixmuldiv2BitExact_DD !! #endif +#endif inline LONG fixmuldiv2BitExact_DD (const LONG a, const LONG b) { return (LONG) ((((INT64)a) * b) >> 32) ; @@ -152,11 +156,13 @@ inline LONG fixmul_DD (const LONG a, const LONG b) #if !defined(FUNCTION_fixmulBitExact_DD) #define FUNCTION_fixmulBitExact_DD +#ifndef NO_WARN_FIXMUL #if defined(_MSC_VER) || defined(__CC_ARM) || defined(__ANALOG_EXTENSIONS__) || defined(__TI_COMPILER_VERSION__) || defined(__XTENSA__) #pragma message ("Extremely slow implementation of fixmulBitExact_DD !!") #else #warning Extremely slow implementation of fixmulBitExact_DD !! #endif +#endif inline LONG fixmulBitExact_DD (const LONG a, const LONG b) { return ( (LONG) ((((INT64)a) * b) >> 32) ) << 1;