• 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  Pathname: s_tDec_Int_Chan.h
21 
22 ------------------------------------------------------------------------------
23  REVISION HISTORY
24 
25  Description: Change data types of win
26 
27  Description: Remove wnd_shape structure.
28 
29  Description: Remove dependency on window_block.h, Fix header too.
30 
31  Description:
32  Modified to utilize memory in the last 1024 elements in fxpCoef.
33 
34  Description:
35  (1) Modified to include the lines...
36 
37     #ifdef __cplusplus
38     extern "C" {
39     #endif
40 
41     #ifdef __cplusplus
42     }
43     #endif
44 
45  (2) Updated the copyright header.
46 
47  Description:
48  (1) Move temporary FrameInfo structure into the shared region with fxpCoef.
49  (2) Add more comments detailing the size of the shared structure.
50 
51  Description:
52  (1) Changed time_quant from 2048 Int32 buffer to 1024 Int32 buffer.
53 
54  Who:                                         Date:
55  Description:
56 
57 ------------------------------------------------------------------------------
58  INCLUDE DESCRIPTION
59 
60  This include file defines the structure, tDec_Int_Chan
61 
62 ------------------------------------------------------------------------------
63 */
64 
65 /*----------------------------------------------------------------------------
66 ; CONTINUE ONLY IF NOT ALREADY DEFINED
67 ----------------------------------------------------------------------------*/
68 #ifndef S_TDEC_INT_CHAN_H
69 #define S_TDEC_INT_CHAN_H
70 
71 #ifdef __cplusplus
72 extern "C"
73 {
74 #endif
75 
76     /*----------------------------------------------------------------------------
77     ; INCLUDES
78     ----------------------------------------------------------------------------*/
79 #include "pv_audio_type_defs.h"
80 #include "e_rawbitstreamconst.h"
81 #include "s_tns_frame_info.h"
82 #include "s_wnd_shape.h"
83 #include "s_lt_pred_status.h"
84 #include "s_sectinfo.h"
85 #include "s_frameinfo.h"
86 #include "e_window_shape.h"
87 #include "e_window_sequence.h"
88 #include "window_block_fxp.h"
89 
90     /*----------------------------------------------------------------------------
91     ; MACROS
92     ; Define module specific macros here
93     ----------------------------------------------------------------------------*/
94 
95     /*----------------------------------------------------------------------------
96     ; DEFINES
97     ; Include all pre-processor statements here.
98     ----------------------------------------------------------------------------*/
99 
100     /*----------------------------------------------------------------------------
101     ; EXTERNAL VARIABLES REFERENCES
102     ; Declare variables used in this module but defined elsewhere
103     ----------------------------------------------------------------------------*/
104 
105     /*----------------------------------------------------------------------------
106     ; SIMPLE TYPEDEF'S
107     ----------------------------------------------------------------------------*/
108 
109     /*----------------------------------------------------------------------------
110     ; ENUMERATED TYPEDEF'S
111     ----------------------------------------------------------------------------*/
112 
113     /*----------------------------------------------------------------------------
114     ; STRUCTURES TYPEDEF'S
115     ----------------------------------------------------------------------------*/
116 
117     /* This structure was created with the specific goal in mind of sharing memory
118      * with the last 1024 data elements in fxpCoef.
119      *
120      * The size of this structure must NOT exceed 4 kilobytes
121      * Also, the size of the fxpCoef array cannot be less than 8 kilobytes
122      *
123      * The fxpCoef array is declared as an Int32, so its size should not vary
124      * from platform to platform.
125      *
126      * The shared structure is 3,640 bytes (3.55 KB), on a 32-bit platform,
127      * which represents the worst case.
128      */
129     typedef struct
130     {
131         TNS_frame_info       tns;
132 
133         FrameInfo            frameInfo;
134 
135         Int                  factors[MAXBANDS];
136         Int                  cb_map[MAXBANDS];
137         Int                  group[NSHORT];
138         Int                  qFormat[MAXBANDS];
139 
140         Int                  max_sfb;
141         LT_PRED_STATUS       lt_status;
142 
143     } per_chan_share_w_fxpCoef;
144 
145     /*
146      * This structure contains one per channel.
147      */
148     typedef struct
149     {
150 #ifdef AAC_PLUS
151         Int16                ltp_buffer[LT_BLEN + 2*288]; /* LT_BLEN  = 2048 + 2*288 */
152 #else
153         Int16                ltp_buffer[LT_BLEN]; /* LT_BLEN  = 2048 */
154 #endif
155 
156 
157         Int32                time_quant[LONG_WINDOW]; /*  1024 holds overlap&add */
158 
159         Int32                *fxpCoef;         /* Spectrum coeff.*/
160 
161         per_chan_share_w_fxpCoef * pShareWfxpCoef;
162 
163         Int32                abs_max_per_window[NUM_SHORT_WINDOWS];
164 
165         WINDOW_SEQUENCE      wnd;
166 
167 
168         WINDOW_SHAPE         wnd_shape_prev_bk;
169         WINDOW_SHAPE         wnd_shape_this_bk;
170 
171     } tDec_Int_Chan;
172 
173     /*----------------------------------------------------------------------------
174     ; GLOBAL FUNCTION DEFINITIONS
175     ; Function Prototype declaration
176     ----------------------------------------------------------------------------*/
177 
178 #ifdef __cplusplus
179 }
180 #endif
181 
182 #endif /* S_TDEC_INT_CHAN_H */
183 
184