diff options
Diffstat (limited to 'libFDK/include/common_fix.h')
-rw-r--r-- | libFDK/include/common_fix.h | 118 |
1 files changed, 87 insertions, 31 deletions
diff --git a/libFDK/include/common_fix.h b/libFDK/include/common_fix.h index c5cbd8a..83d4ba3 100644 --- a/libFDK/include/common_fix.h +++ b/libFDK/include/common_fix.h @@ -1,29 +1,91 @@ -/*************************** Fraunhofer IIS FDK Tools ********************** - (C) Copyright Fraunhofer IIS (2002) - All Rights Reserved +/* ----------------------------------------------------------------------------------------------------------- +Software License for The Fraunhofer FDK AAC Codec Library for Android + +© Copyright 1995 - 2012 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 - Please be advised that this software and/or program delivery is - Confidential Information of Fraunhofer and subject to and covered by the +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. - Fraunhofer IIS Software Evaluation Agreement - between Google Inc. and Fraunhofer - effective and in full force since March 1, 2012. +You may use this FDK AAC Codec software or modifications thereto only for purposes that are authorized +by appropriate patent licenses. - You may use this software and/or program only under the terms and - conditions described in the above mentioned Fraunhofer IIS Software - Evaluation Agreement. Any other and/or further use requires a separate agreement. +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 ********************** - $Id$ Author(s): M. Lohwasser, M. Gayer Description: Flexible fixpoint library configuration - This software and/or program is protected by copyright law and international - treaties. Any reproduction or distribution of this software and/or program, - or any portion of it, may result in severe civil and criminal penalties, and - will be prosecuted to the maximum extent possible under law. - ******************************************************************************/ #ifndef _COMMON_FIX_H @@ -38,9 +100,6 @@ #define FIX_FRACT 0 /* Define this to "1" to use fractional arithmetic simulation in class fract instead of integer arithmetic */ /* 1 for debug with extra runtime overflow checking. */ -/* Truncate -1.0 to -1.0 + 1/(D)FRACT_FIX_SCALE */ -//#define FRACT_TRUNC_MINUSONE - /* Define bit sizes of integer fixpoint fractional data types */ #define FRACT_BITS 16 /* single precision */ #define DFRACT_BITS 32 /* double precision */ @@ -92,13 +151,8 @@ /* macros for compile-time conversion of constant float values to fixedpoint */ #define FL2FXCONST_SPC FL2FXCONST_DBL -#ifdef FRACT_TRUNC_MINUSONE -#define MINVAL_DBL_CONST MINVAL_DBL+1 -#define MINVAL_SGL_CONST MINVAL_SGL+1 -#else #define MINVAL_DBL_CONST MINVAL_DBL #define MINVAL_SGL_CONST MINVAL_SGL -#endif #define FL2FXCONST_SGL(val) \ (FIXP_SGL)( ( (val) >= 0) ? \ @@ -171,6 +225,7 @@ FDK_INLINE FIXP_DBL fAbs(FIXP_DBL x) FDK_INLINE FIXP_SGL fAbs(FIXP_SGL x) { return fixabs_S(x); } + /* workaround for TI C6x compiler but not for TI ARM9E compiler */ #if (!defined(__TI_COMPILER_VERSION__) || defined(__TI_TMS470_V5__)) && !defined(__x86_64__) FDK_INLINE INT fAbs(INT x) @@ -185,9 +240,9 @@ FDK_INLINE INT fNormz(FIXP_DBL x) { return fixnormz_D(x); } FDK_INLINE INT fNormz(FIXP_SGL x) { return fixnormz_S(x); } -FDK_INLINE INT fNorm(FIXP_DBL x) +FDK_INLINE INT fNorm(FIXP_DBL x) { return fixnorm_D(x); } -FDK_INLINE INT fNorm(FIXP_SGL x) +FDK_INLINE INT fNorm(FIXP_SGL x) { return fixnorm_S(x); } @@ -281,6 +336,7 @@ FDK_INLINE FIXP_SGL fMin(FIXP_SGL a, FIXP_SGL b) FDK_INLINE FIXP_SGL fMax(FIXP_SGL a, FIXP_SGL b) { return fixmax_S(a,b); } + /* workaround for TI C6x compiler but not for TI ARM9E */ #if ((!defined(__TI_COMPILER_VERSION__) || defined(__TI_TMS470_V5__)) && !defined(__x86_64__)) || (FIX_FRACT == 1) FDK_INLINE INT fMax(INT a, INT b) @@ -297,19 +353,19 @@ inline UINT fMin(UINT a, UINT b) /* Complex data types */ typedef shouldBeUnion { /* vector representation for arithmetic */ - struct { + struct { FIXP_SGL re; - FIXP_SGL im; + FIXP_SGL im; } v; /* word representation for memory move */ LONG w; } FIXP_SPK; -typedef shouldBeUnion { +typedef shouldBeUnion { /* vector representation for arithmetic */ struct { FIXP_DBL re; - FIXP_DBL im; + FIXP_DBL im; } v; /* word representation for memory move */ INT64 w; |