00001 /* 00002 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 00003 ** Copyright (C) 2003-2005 M. Bakker, Ahead Software AG, http://www.nero.com 00004 ** 00005 ** This program is free software; you can redistribute it and/or modify 00006 ** it under the terms of the GNU General Public License as published by 00007 ** the Free Software Foundation; either version 2 of the License, or 00008 ** (at your option) any later version. 00009 ** 00010 ** This program is distributed in the hope that it will be useful, 00011 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 ** GNU General Public License for more details. 00014 ** 00015 ** You should have received a copy of the GNU General Public License 00016 ** along with this program; if not, write to the Free Software 00017 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 ** 00019 ** Any non-GPL usage of this software or parts of this software is strictly 00020 ** forbidden. 00021 ** 00022 ** Software using this code must display the following message visibly in the 00023 ** software: 00024 ** "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Ahead Software, www.nero.com" 00025 ** in, for example, the about-box or help/startup screen. 00026 ** 00027 ** Commercial non-GPL licensing of this software is possible. 00028 ** For more info contact Ahead Software through [email protected]. 00029 ** 00030 ** $Id: is.h,v 1.2 2005/11/01 21:41:43 gabest Exp $ 00031 **/ 00032 00033 #ifndef __IS_H__ 00034 #define __IS_H__ 00035 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif 00039 00040 #include "syntax.h" 00041 00042 void is_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec, 00043 uint16_t frame_len); 00044 00045 static INLINE int8_t is_intensity(ic_stream *ics, uint8_t group, uint8_t sfb) 00046 { 00047 switch (ics->sfb_cb[group][sfb]) 00048 { 00049 case INTENSITY_HCB: 00050 return 1; 00051 case INTENSITY_HCB2: 00052 return -1; 00053 default: 00054 return 0; 00055 } 00056 } 00057 00058 static INLINE int8_t invert_intensity(ic_stream *ics, uint8_t group, uint8_t sfb) 00059 { 00060 if (ics->ms_mask_present == 1) 00061 return (1-2*ics->ms_used[group][sfb]); 00062 return 1; 00063 } 00064 00065 00066 #ifdef __cplusplus 00067 } 00068 #endif 00069 #endif