00001 /***************************************************************** 00002 | 00003 | Melo - Frames 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 ****************************************************************/ 00029 #ifndef _MLO_FRAME_H_ 00030 #define _MLO_FRAME_H_ 00031 00032 /*---------------------------------------------------------------------- 00033 | includes 00034 +---------------------------------------------------------------------*/ 00035 #include "MloSamplingFreq.h" 00036 #include "MloBitStream.h" 00037 #include "MloTypes.h" 00038 00039 /*---------------------------------------------------------------------- 00040 | types 00041 +---------------------------------------------------------------------*/ 00042 typedef enum { 00043 MLO_AAC_STANDARD_MPEG2, 00044 MLO_AAC_STANDARD_MPEG4 00045 } MLO_AacStandard; 00046 00047 typedef enum { 00048 MLO_AAC_PROFILE_MAIN, 00049 MLO_AAC_PROFILE_LC, 00050 MLO_AAC_PROFILE_SSR, 00051 MLO_AAC_PROFILE_LTP 00052 } MLO_AacProfile; 00053 00054 typedef struct { 00055 MLO_AacStandard standard; 00056 MLO_AacProfile profile; 00057 MLO_SamplingFreq_Index 00058 sampling_frequency_index; 00059 unsigned long sampling_frequency; 00060 unsigned int channel_configuration; 00061 unsigned int frame_length; /* With headers and check, bytes */ 00062 } MLO_FrameInfo; 00063 00064 typedef struct { 00065 MLO_BitStream* source; 00066 MLO_FrameInfo info; 00067 } MLO_FrameData; 00068 00069 #endif /* _MLO_FRAME_H_ */