videoeditorengine/mp3aacManipLib/AACGain/inc/aacdef.h
changeset 0 951a5db380a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/mp3aacManipLib/AACGain/inc/aacdef.h	Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+*
+* Contributors:
+* Ixonos Plc
+*
+* Description:
+*
+*/
+
+
+/**************************************************************************
+  aacdef.h - Interface to AAC core structures.
+ 
+  Author(s): Juha Ojanpera
+  Copyright (c) 2000-2004 by Nokia Research Center, Speech and Audio Systems.
+  *************************************************************************/
+
+#ifndef AACDEF_H_
+#define AACDEF_H_
+
+/*-- Project Headers. --*/
+#include "chandefs.h"
+#include "defines.h"
+#include "dec_huf.h"
+
+/*
+   Purpose:     Structure interface for window parameters.
+   Explanation: - */
+class CWindowInfo : public CBase
+{
+public:
+
+    static CWindowInfo* NewL();
+    ~CWindowInfo();
+    uint8 wnd;
+    uint8 max_sfb;
+    uint8 hasmask;
+    uint8 predBands;
+    PredType predType;
+    int16 prstflag[2];
+    Wnd_Shape wshape[2];
+    uint8* group;//[NSHORT];
+    uint8* mask;//[MAXBANDS];
+    int16* sfac;//[MAXBANDS];
+    uint8* cb_map;//[MAXBANDS];
+    int16* lpflag;//[MAXBANDS];
+
+private:
+
+    void ConstructL();
+    CWindowInfo();
+
+};
+
+/*
+   Purpose:     Information about the audio channel.
+   Explanation: - */
+class TCh_Info
+{
+public:
+
+    int16 present;         /* Channel present.                              */
+    int16 num_bins;        /* # of active (i.e., nonzero) bins for this ch. */
+    int16 tag;             /* Element tag.                                  */
+    int16 cpe;             /* 0 if single channel, 1 if channel pair.       */
+    int16 paired_ch;       /* Index of paired channel in cpe.               */
+    int16 widx;            /* Window element index for this channel.        */
+    
+    BOOL is_present;       /* Intensity stereo is used.                     */
+    BOOL pns_present;      /* PNS is used.                                  */
+    BOOL tns_present;      /* TNS is used.                                  */
+    BOOL parseCh;          /* TRUE if channel only parsed not decoded.      */
+    
+    int16 ncch;            /* Number of coupling channels for this ch.      */
+    int16 cch[CChansD];    /* Coupling channel idx.                         */
+    int16 cc_dom[CChansD]; /* Coupling channel domain.                      */
+    int16 cc_ind[CChansD]; /* Independently switched coupling channel flag. */
+    CInfo *info;            /* Block parameters for this channel.            */
+    
+    /*-- Huffman tables. --*/
+    Huffman_DecInfo **huf;
+    Huffman_DecSfInfo *sf_huf;
+    
+};
+
+
+/*
+   Purpose:     Channel mapping information.
+   Explanation: - */
+class CMC_Info : public CBase
+{
+public:
+
+    static CMC_Info* NewL();
+    ~CMC_Info();
+    /*
+    * Max number of supported main and coulping channels.
+    */
+    int16 maxnCh;
+    int16 maxnCCh;
+
+    /*
+    * Audio channels (LFE, SCE, and CPE) up to 'maxnCh' will be decoded.
+    * All the other channels will be only parsed. 'dummyCh' is therefore
+    * the channel index into 'ch_info' structure which is used for the unused
+    * audio channels. 'dummyCCh' identifies the channel index for unused CCE
+    * channels.
+    */
+    int16 dummyCh;
+    int16 dummyCCh;
+    
+    /*
+    * This will be set to 1 when the channel limit has been reached.
+    */
+    int16 dummyAlways;
+    
+    /*
+    * These members identify how many audio channels (LFE, SCE, CPE, CCE)
+    * were found from the bitstream on a frame-by-frame basis.
+    */
+    int16 nch;
+    int16 ncch;
+
+    int16 cc_tag[1 << LEN_TAG]; /* Tags of valid CCE's.                           */
+    int16 cc_ind[1 << LEN_TAG]; /* Independently switched CCE's.                  */
+    uint8 profile;
+    uint8 sfreq_idx;
+    
+    int16 cur_prog;
+    int16 default_config;
+    
+    CSfb_Info* sfbInfo;
+    
+    TCh_Info ch_info[ChansD];
+
+private:
+
+    void ConstructL();
+    CMC_Info();
+
+
+};
+
+/*
+   Purpose:     Pulse noiseless coding.
+   Explanation: - */
+typedef struct PulseInfoStr
+{
+  int16 number_pulse;
+  int16 pulse_start_sfb;
+  int16 pulse_data_present;
+  int16 pulse_amp[NUM_PULSE_LINES];
+  int16 pulse_offset[NUM_PULSE_LINES];
+  int16 pulse_position[NUM_PULSE_LINES];
+
+} PulseInfo;
+
+#endif /*-- AACDEF_H_ --*/