- Main Page
- Namespaces
- Classes
- Files
- Directories

- File List
- File Members

# syntax.h

    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 Mpeg4AAClicense@nero.com.
    00029 **
    00030 ** $Id: syntax.h,v 1.2 2005/11/01 21:41:43 gabest Exp $
    00031 **/
    00032
    00033 #ifndef __SYNTAX_H__
    00034 #define __SYNTAX_H__
    00035
    00036 #ifdef __cplusplus
    00037 extern "C" {
    00038 #endif
    00039
    00040 #include "decoder.h"
    00041 #include "bits.h"
    00042
    00043 #define MAIN       1
    00044 #define LC         2
    00045 #define SSR        3
    00046 #define LTP        4
    00047 #define HE_AAC     5
    00048 #define LD        23
    00049 #define ER_LC     17
    00050 #define ER_LTP    19
    00051 #define DRM_ER_LC 27 /* special object type for DRM */
    00052
    00053 /* header types */
    00054 #define RAW        0
    00055 #define ADIF       1
    00056 #define ADTS       2
    00057
    00058 /* SBR signalling */
    00059 #define NO_SBR           0
    00060 #define SBR_UPSAMPLED    1
    00061 #define SBR_DOWNSAMPLED  2
    00062 #define NO_SBR_UPSAMPLED 3
    00063
    00064 /* DRM channel definitions */
    00065 #define DRMCH_MONO          1
    00066 #define DRMCH_STEREO        2
    00067 #define DRMCH_SBR_MONO      3
    00068 #define DRMCH_SBR_STEREO    4
    00069 #define DRMCH_SBR_PS_STEREO 5
    00070
    00071
    00072 /* First object type that has ER */
    00073 #define ER_OBJECT_START 17
    00074
    00075
    00076 /* Bitstream */
    00077 #define LEN_SE_ID 3
    00078 #define LEN_TAG   4
    00079 #define LEN_BYTE  8
    00080
    00081 #define EXT_FIL            0
    00082 #define EXT_FILL_DATA      1
    00083 #define EXT_DATA_ELEMENT   2
    00084 #define EXT_DYNAMIC_RANGE 11
    00085 #define ANC_DATA           0
    00086
    00087 /* Syntax elements */
    00088 #define ID_SCE 0x0
    00089 #define ID_CPE 0x1
    00090 #define ID_CCE 0x2
    00091 #define ID_LFE 0x3
    00092 #define ID_DSE 0x4
    00093 #define ID_PCE 0x5
    00094 #define ID_FIL 0x6
    00095 #define ID_END 0x7
    00096
    00097 #define ONLY_LONG_SEQUENCE   0x0
    00098 #define LONG_START_SEQUENCE  0x1
    00099 #define EIGHT_SHORT_SEQUENCE 0x2
    00100 #define LONG_STOP_SEQUENCE   0x3
    00101
    00102 #define ZERO_HCB       0
    00103 #define FIRST_PAIR_HCB 5
    00104 #define ESC_HCB        11
    00105 #define QUAD_LEN       4
    00106 #define PAIR_LEN       2
    00107 #define NOISE_HCB      13
    00108 #define INTENSITY_HCB2 14
    00109 #define INTENSITY_HCB  15
    00110
    00111 #define INVALID_SBR_ELEMENT 255
    00112
    00113 int8_t GASpecificConfig(bitfile *ld, mp4AudioSpecificConfig *mp4ASC,
    00114                         program_config *pce);
    00115
    00116 uint8_t adts_frame(adts_header *adts, bitfile *ld);
    00117 void get_adif_header(adif_header *adif, bitfile *ld);
    00118 void raw_data_block(NeAACDecHandle hDecoder, NeAACDecFrameInfo *hInfo,
    00119                     bitfile *ld, program_config *pce, drc_info *drc);
    00120 uint8_t reordered_spectral_data(NeAACDecHandle hDecoder, ic_stream *ics, bitfile *ld,
    00121                                 int16_t *spectral_data);
    00122 #ifdef DRM
    00123 void DRM_aac_scalable_main_element(NeAACDecHandle hDecoder, NeAACDecFrameInfo *hInfo,
    00124                                    bitfile *ld, program_config *pce, drc_info *drc);
    00125 #endif
    00126
    00127 #ifdef __cplusplus
    00128 }
    00129 #endif
    00130 #endif