MloElementCpe.h

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 Channel Pair Element
00028 
00029 One of the Syntactic Elements contained in the raw data blocks.
00030 
00031 Ref:
00032 4.4.2.1, Table 4.5
00033 */
00034 
00035 
00036 
00037 #ifndef _MLO_ELEMENT_CPE_H_
00038 #define _MLO_ELEMENT_CPE_H_
00039 
00040 
00041 
00042 /*----------------------------------------------------------------------
00043 |       Includes
00044 +---------------------------------------------------------------------*/
00045 
00046 
00047 
00048 #include "MloSamplingFreq.h"
00049 #include "MloBitStream.h"
00050 #include "MloDefs.h"
00051 #include "MloIndivChnPool.h"
00052 #include "MloIndivChnStream.h"
00053 #include "MloTypes.h"
00054 
00055 
00056 
00057 /*----------------------------------------------------------------------
00058 |       Function prototypes
00059 +---------------------------------------------------------------------*/
00060 
00061 
00062 
00063 /* Ref: 4.6.8.1.2 */
00064 typedef enum MLO_ElementCpe_MsMaskType
00065 {
00066    MLO_ELEMENT_CPE_MS_MASK_TYPE_ALL_0 = 0,
00067    MLO_ELEMENT_CPE_MS_MASK_TYPE_USED,
00068    MLO_ELEMENT_CPE_MS_MASK_TYPE_ALL_1,
00069    MLO_ELEMENT_CPE_MS_MASK_TYPE_RESERVED,
00070 
00071    MLO_ELEMENT_CPE_MS_MASK_TYPE_NBR_ELT
00072 }  MLO_ElementCpe_MsMaskType;
00073 
00074 typedef struct MLO_ElementCpe
00075 {
00076    int            element_instance_tag;
00077    MLO_Boolean    common_window_flag;
00078    MLO_ElementCpe_MsMaskType
00079                   ms_mask_present;  /* Set to ALL_0 if common_window_flag is not set */
00080    MLO_UInt8      ms_used [MLO_DEFS_MAX_NBR_WIN_GRP] [MLO_DEFS_MAX_NUM_SWB + 1];   /* [g] [sfb]. Boolean */
00081    MLO_IndivChnStream *
00082                   ics_ptr_arr [2];  /* Allocated on the channel pool */
00083 }  MLO_ElementCpe;
00084 
00085 
00086 
00087 /*----------------------------------------------------------------------
00088 |       Function prototypes
00089 +---------------------------------------------------------------------*/
00090 
00091 
00092 
00093 #ifdef __cplusplus
00094 extern "C" {
00095 #endif /* __cplusplus */
00096 
00097 
00098 
00099 MLO_Result  MLO_ElementCpe_Decode (MLO_ElementCpe *cpe_ptr, MLO_BitStream *bit_ptr, MLO_IndivChnPool *chn_pool_ptr, MLO_SamplingFreq_Index fs_index);
00100 
00101 
00102 
00103 #ifdef __cplusplus
00104 }
00105 #endif /* __cplusplus */
00106 
00107 
00108 
00109 #endif /* _MLO_ELEMENT_CPE_H_ */