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  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