Home | History | Annotate | Download | only in aacdec
      1 /* ------------------------------------------------------------------
      2  * Copyright (C) 1998-2009 PacketVideo
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
     13  * express or implied.
     14  * See the License for the specific language governing permissions
     15  * and limitations under the License.
     16  * -------------------------------------------------------------------
     17  */
     18 /****************************************************************************
     19 
     20 SC 29 Software Copyright Licencing Disclaimer:
     21 
     22 This software module was originally developed by
     23   Coding Technologies
     24 
     25 and edited by
     26   -
     27 
     28 in the course of development of the ISO/IEC 13818-7 and ISO/IEC 14496-3
     29 standards for reference purposes and its performance may not have been
     30 optimized. This software module is an implementation of one or more tools as
     31 specified by the ISO/IEC 13818-7 and ISO/IEC 14496-3 standards.
     32 ISO/IEC gives users free license to this software module or modifications
     33 thereof for use in products claiming conformance to audiovisual and
     34 image-coding related ITU Recommendations and/or ISO/IEC International
     35 Standards. ISO/IEC gives users the same free license to this software module or
     36 modifications thereof for research purposes and further ISO/IEC standardisation.
     37 Those intending to use this software module in products are advised that its
     38 use may infringe existing patents. ISO/IEC have no liability for use of this
     39 software module or modifications thereof. Copyright is not released for
     40 products that do not conform to audiovisual and image-coding related ITU
     41 Recommendations and/or ISO/IEC International Standards.
     42 The original developer retains full right to modify and use the code for its
     43 own purpose, assign or donate the code to a third party and to inhibit third
     44 parties from using the code for products that do not conform to audiovisual and
     45 image-coding related ITU Recommendations and/or ISO/IEC International Standards.
     46 This copyright notice must be included in all copies or derivative works.
     47 Copyright (c) ISO/IEC 2003.
     48 
     49 *******************************************************************************/
     50 
     51 #ifndef S_PS_DEC_H
     52 #define S_PS_DEC_H
     53 
     54 
     55 #include "s_hybrid.h"
     56 #include "s_patch.h"
     57 
     58 /****************************************************************
     59   Type definitions
     60  ****************************************************************/
     61 struct PS_DEC
     62 {
     63 
     64     Int psDetected;
     65     Int32 *R_ch_qmf_filter_history;
     66     Int32 invNoSubSamples;
     67 
     68     Int32 bForceMono;
     69     UInt32 noSubSamples;
     70     Int32 usb;
     71     Int32 lastUsb;
     72 
     73     Int32 bPsDataAvail;
     74 
     75     UInt32 bEnableIid;
     76     UInt32 bEnableIcc;
     77 
     78     UInt32 bEnableExt;
     79     Int32 bFineIidQ;
     80 
     81     Int32 aIidPrevFrameIndex[NO_HI_RES_BINS];
     82     Int32 aIccPrevFrameIndex[NO_HI_RES_BINS];
     83 
     84     UInt32 freqResIid;
     85     UInt32 freqResIcc;
     86 
     87     UInt32 bFrameClass;
     88     UInt32 noEnv;
     89     UInt32 aEnvStartStop[MAX_NO_PS_ENV+1];
     90 
     91     UInt32 abIidDtFlag[MAX_NO_PS_ENV];
     92     UInt32 abIccDtFlag[MAX_NO_PS_ENV];
     93 
     94     Int32   delayBufIndex;
     95 
     96     UInt32 aDelayRBufIndexSer[NO_SERIAL_ALLPASS_LINKS];
     97 
     98     Int32 **aaaRealDelayRBufferSerQmf[NO_SERIAL_ALLPASS_LINKS];
     99     Int32 **aaaImagDelayRBufferSerQmf[NO_SERIAL_ALLPASS_LINKS];
    100 
    101     Int32 **aaaRealDelayRBufferSerSubQmf[NO_SERIAL_ALLPASS_LINKS];
    102     Int32 **aaaImagDelayRBufferSerSubQmf[NO_SERIAL_ALLPASS_LINKS];
    103 
    104     Int32 **aaRealDelayBufferQmf;
    105     Int32 **aaImagDelayBufferQmf;
    106     Int32 **aaRealDelayBufferSubQmf;
    107     Int32 **aaImagDelayBufferSubQmf;
    108 
    109     Int32 *aPeakDecayFast;
    110     Int32 *aPrevNrg;
    111     Int32 *aPrevPeakDiff;
    112 
    113     Int32 *mHybridRealLeft;
    114     Int32 *mHybridImagLeft;
    115     Int32 *mHybridRealRight;
    116     Int32 *mHybridImagRight;
    117 
    118 
    119     HYBRID *hHybrid;
    120 
    121 
    122 
    123     Int32 h11Prev[NO_IID_GROUPS];
    124     Int32 h12Prev[NO_IID_GROUPS];
    125     Int32 h21Prev[NO_IID_GROUPS];
    126     Int32 h22Prev[NO_IID_GROUPS];
    127 
    128     Int32 H11[NO_IID_GROUPS];
    129     Int32 H12[NO_IID_GROUPS];
    130     Int32 H21[NO_IID_GROUPS];
    131     Int32 H22[NO_IID_GROUPS];
    132 
    133     Int32 deltaH11[NO_IID_GROUPS];
    134     Int32 deltaH12[NO_IID_GROUPS];
    135     Int32 deltaH21[NO_IID_GROUPS];
    136     Int32 deltaH22[NO_IID_GROUPS];
    137 
    138     Int32(*qmfBufferReal)[64];
    139     Int32(*qmfBufferImag)[64];
    140 
    141     Int32 aDelayBufIndex[NO_DELAY_CHANNELS];
    142     Int32 aNoSampleDelay[NO_DELAY_CHANNELS];  /////
    143     Int32 aaIidIndex[MAX_NO_PS_ENV+1][NO_HI_RES_BINS];
    144     Int32 aaIccIndex[MAX_NO_PS_ENV+1][NO_HI_RES_BINS];
    145 
    146 };
    147 
    148 typedef struct PS_DEC STRUCT_PS_DEC;
    149 typedef struct PS_DEC * HANDLE_PS_DEC;
    150 
    151 
    152 
    153 #endif      /*  E_PS_DEC_H */
    154 
    155