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