• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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