/* ------------------------------------------------------------------ * Copyright (C) 1998-2009 PacketVideo * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. * See the License for the specific language governing permissions * and limitations under the License. * ------------------------------------------------------------------- */ /* Pathname: s_tDec_Int_Chan.h ------------------------------------------------------------------------------ REVISION HISTORY Description: Change data types of win Description: Remove wnd_shape structure. Description: Remove dependency on window_block.h, Fix header too. Description: Modified to utilize memory in the last 1024 elements in fxpCoef. Description: (1) Modified to include the lines... #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif (2) Updated the copyright header. Description: (1) Move temporary FrameInfo structure into the shared region with fxpCoef. (2) Add more comments detailing the size of the shared structure. Description: (1) Changed time_quant from 2048 Int32 buffer to 1024 Int32 buffer. Who: Date: Description: ------------------------------------------------------------------------------ INCLUDE DESCRIPTION This include file defines the structure, tDec_Int_Chan ------------------------------------------------------------------------------ */ /*---------------------------------------------------------------------------- ; CONTINUE ONLY IF NOT ALREADY DEFINED ----------------------------------------------------------------------------*/ #ifndef S_TDEC_INT_CHAN_H #define S_TDEC_INT_CHAN_H #ifdef __cplusplus extern "C" { #endif /*---------------------------------------------------------------------------- ; INCLUDES ----------------------------------------------------------------------------*/ #include "pv_audio_type_defs.h" #include "e_rawbitstreamconst.h" #include "s_tns_frame_info.h" #include "s_wnd_shape.h" #include "s_lt_pred_status.h" #include "s_sectinfo.h" #include "s_frameinfo.h" #include "e_window_shape.h" #include "e_window_sequence.h" #include "window_block_fxp.h" /*---------------------------------------------------------------------------- ; MACROS ; Define module specific macros here ----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------- ; DEFINES ; Include all pre-processor statements here. ----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------- ; EXTERNAL VARIABLES REFERENCES ; Declare variables used in this module but defined elsewhere ----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------- ; SIMPLE TYPEDEF'S ----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------- ; ENUMERATED TYPEDEF'S ----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------- ; STRUCTURES TYPEDEF'S ----------------------------------------------------------------------------*/ /* This structure was created with the specific goal in mind of sharing memory * with the last 1024 data elements in fxpCoef. * * The size of this structure must NOT exceed 4 kilobytes * Also, the size of the fxpCoef array cannot be less than 8 kilobytes * * The fxpCoef array is declared as an Int32, so its size should not vary * from platform to platform. * * The shared structure is 3,640 bytes (3.55 KB), on a 32-bit platform, * which represents the worst case. */ typedef struct { TNS_frame_info tns; FrameInfo frameInfo; Int factors[MAXBANDS]; Int cb_map[MAXBANDS]; Int group[NSHORT]; Int qFormat[MAXBANDS]; Int max_sfb; LT_PRED_STATUS lt_status; } per_chan_share_w_fxpCoef; /* * This structure contains one per channel. */ typedef struct { #ifdef AAC_PLUS Int16 ltp_buffer[LT_BLEN + 2*288]; /* LT_BLEN = 2048 + 2*288 */ #else Int16 ltp_buffer[LT_BLEN]; /* LT_BLEN = 2048 */ #endif Int32 time_quant[LONG_WINDOW]; /* 1024 holds overlap&add */ Int32 *fxpCoef; /* Spectrum coeff.*/ per_chan_share_w_fxpCoef * pShareWfxpCoef; Int32 abs_max_per_window[NUM_SHORT_WINDOWS]; WINDOW_SEQUENCE wnd; WINDOW_SHAPE wnd_shape_prev_bk; WINDOW_SHAPE wnd_shape_this_bk; } tDec_Int_Chan; /*---------------------------------------------------------------------------- ; GLOBAL FUNCTION DEFINITIONS ; Function Prototype declaration ----------------------------------------------------------------------------*/ #ifdef __cplusplus } #endif #endif /* S_TDEC_INT_CHAN_H */