2012-07-11 10:15:24 -07:00
/* -----------------------------------------------------------------------------------------------------------
Software License for The Fraunhofer FDK AAC Codec Library for Android
2013-08-08 17:26:40 -07:00
<EFBFBD> Copyright 1995 - 2013 Fraunhofer - Gesellschaft zur F <EFBFBD> rderung der angewandten Forschung e . V .
2012-07-11 10:15:24 -07:00
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/*!
\ file
\ brief Defines structures and prototypes for RVLC
\ author Robert Weidner
*/
# ifndef RVLC_H
# define RVLC_H
# include "aacdecoder.h"
# include "channel.h"
# include "rvlc_info.h"
/* ------------------------------------------------------------------- */
/* errorLogRvlc: A word of 32 bits used for logging possible errors */
/* within RVLC in case of distorted bitstreams. */
/* ------------------------------------------------------------------- */
# define RVLC_ERROR_ALL_ESCAPE_WORDS_INVALID 0x80000000 /* ESC-Dec During RVLC-Escape-decoding there have been more bits decoded as there are available */
# define RVLC_ERROR_RVL_SUM_BIT_COUNTER_BELOW_ZERO_FWD 0x40000000 /* RVL-Dec negative sum-bitcounter during RVL-fwd-decoding (long+shrt) */
# define RVLC_ERROR_RVL_SUM_BIT_COUNTER_BELOW_ZERO_BWD 0x20000000 /* RVL-Dec negative sum-bitcounter during RVL-fwd-decoding (long+shrt) */
# define RVLC_ERROR_FORBIDDEN_CW_DETECTED_FWD 0x08000000 /* RVL-Dec forbidden codeword detected fwd (long+shrt) */
# define RVLC_ERROR_FORBIDDEN_CW_DETECTED_BWD 0x04000000 /* RVL-Dec forbidden codeword detected bwd (long+shrt) */
void CRvlc_Read ( CAacDecoderChannelInfo * pAacDecoderChannelInfo ,
HANDLE_FDK_BITSTREAM bs ) ;
void CRvlc_Decode ( CAacDecoderChannelInfo * pAacDecoderChannelInfo ,
CAacDecoderStaticChannelInfo * pAacDecoderStaticChannelInfo ,
HANDLE_FDK_BITSTREAM bs ) ;
/**
* \ brief performe sanity checks to the channel data corresponding to one channel element .
* \ param pAacDecoderChannelInfo
* \ param pAacDecoderStaticChannelInfo
* \ param elChannels amount of channels of the channel element .
*/
void CRvlc_ElementCheck (
CAacDecoderChannelInfo * pAacDecoderChannelInfo [ ] ,
CAacDecoderStaticChannelInfo * pAacDecoderStaticChannelInfo [ ] ,
const UINT flags ,
const INT elChannels
) ;
# endif /* RVLC_H */