00001 /***************************************************************** 00002 | 00003 | Copyright 2004-2006 Axiomatic Systems LLC 00004 | 00005 | This file is part of Melo (Melo AAC Decoder). 00006 | 00007 | Unless you have obtained Melo under a difference license, 00008 | this version of Melo is Melo|GPL. 00009 | Melo|GPL is free software; you can redistribute it and/or modify 00010 | it under the terms of the GNU General Public License as published by 00011 | the Free Software Foundation; either version 2, or (at your option) 00012 | any later version. 00013 | 00014 | Melo|GPL is distributed in the hope that it will be useful, 00015 | but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 | GNU General Public License for more details. 00018 | 00019 | You should have received a copy of the GNU General Public License 00020 | along with Melo|GPL; see the file COPYING. If not, write to the 00021 | Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 00022 | 02111-1307, USA. 00023 | 00024 ****************************************************************/ 00025 00026 /* 00027 Does filter bank processing and block switching 00028 00029 Ref: 00030 4.6.11 00031 */ 00032 00033 #ifndef _MLO_FILTER_BANK_H_ 00034 #define _MLO_FILTER_BANK_H_ 00035 00036 00037 00038 /*---------------------------------------------------------------------- 00039 | Includes 00040 +---------------------------------------------------------------------*/ 00041 00042 00043 00044 #include "MloImdct.h" 00045 #include "MloIndivChnStream.h" 00046 #include "MloDefs.h" 00047 #include "MloTypes.h" 00048 00049 00050 00051 /*---------------------------------------------------------------------- 00052 | Types 00053 +---------------------------------------------------------------------*/ 00054 00055 00056 00057 typedef struct MLO_FilterBank 00058 { 00059 MLO_Imdct imdct; 00060 MLO_Float tmp_buf [MLO_DEFS_FRAME_LEN_LONG * 2]; /* For IMDCT result and overlapped data */ 00061 MLO_Float tmp_win [MLO_DEFS_FRAME_LEN_LONG * 2]; /* Windowed data */ 00062 } MLO_FilterBank; 00063 00064 00065 00066 /*---------------------------------------------------------------------- 00067 | Function prototypes 00068 +---------------------------------------------------------------------*/ 00069 00070 00071 00072 #ifdef __cplusplus 00073 extern "C" { 00074 #endif /* __cplusplus */ 00075 00076 00077 00078 MLO_Result MLO_FilterBank_Init (MLO_FilterBank *fb_ptr); 00079 void MLO_FilterBank_Restore (MLO_FilterBank *fb_ptr); 00080 00081 void MLO_FilterBank_ConvertSpectralToTime (MLO_FilterBank *fb_ptr, MLO_IndivChnStream *ics_ptr); 00082 00083 00084 00085 #ifdef __cplusplus 00086 } 00087 #endif /* __cplusplus */ 00088 00089 00090 00091 #endif /* _MLO_FILTER_BANK_H_ */