| /* ------------------------------------------------------------------ |
| * 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: .huffman.h |
| |
| ------------------------------------------------------------------------------ |
| REVISION HISTORY |
| |
| Description: Put declaration of getfill in this file. |
| |
| Description: Remove prstflag from get_ics_info declaration. |
| |
| Description: Trivial change of the data type of one of the parameters to |
| get_ics_info. |
| |
| Description: Change where get_ics_info is declared. |
| |
| Description: Clean up comments |
| |
| Description: (1) Add declaration of binary tree search function for Huffman |
| decoding |
| (2) #if the traditional and optimized linear seach methods. |
| |
| Description: Modified per review comments |
| (1) delete #if traditional and optimized linear seach methods |
| |
| Description: Merged Ken's change on getics: delete pFrameInfo from argument |
| list |
| |
| Description: Added function definition for table specific huffman decoding |
| functions. |
| |
| Who: Date: |
| Description: |
| |
| ------------------------------------------------------------------------------ |
| INCLUDE DESCRIPTION |
| |
| include function prototype definitions for Huffman decoding module |
| |
| ------------------------------------------------------------------------------ |
| */ |
| |
| /*---------------------------------------------------------------------------- |
| ; CONTINUE ONLY IF NOT ALREADY DEFINED |
| ----------------------------------------------------------------------------*/ |
| #ifndef HUFFMAN_H |
| #define HUFFMAN_H |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| /*---------------------------------------------------------------------------- |
| ; INCLUDES |
| ----------------------------------------------------------------------------*/ |
| #include "pv_audio_type_defs.h" |
| #include "s_frameinfo.h" |
| #include "s_sectinfo.h" |
| #include "s_pulseinfo.h" |
| #include "s_tdec_int_file.h" |
| #include "s_tdec_int_chan.h" |
| #include "ibstream.h" |
| |
| #include "s_hcb.h" |
| #include "hcbtables.h" |
| |
| #include "get_pulse_data.h" |
| #include "get_ics_info.h" |
| |
| /*---------------------------------------------------------------------------- |
| ; MACROS |
| ; Define module specific macros here |
| ----------------------------------------------------------------------------*/ |
| |
| /*---------------------------------------------------------------------------- |
| ; DEFINES |
| ; Include all pre-processor statements here. |
| ----------------------------------------------------------------------------*/ |
| #define DIMENSION_4 4 |
| #define DIMENSION_2 2 |
| |
| /*---------------------------------------------------------------------------- |
| ; EXTERNAL VARIABLES REFERENCES |
| ; Declare variables used in this module but defined elsewhere |
| ----------------------------------------------------------------------------*/ |
| |
| /*---------------------------------------------------------------------------- |
| ; SIMPLE TYPEDEF'S |
| ----------------------------------------------------------------------------*/ |
| |
| /*---------------------------------------------------------------------------- |
| ; ENUMERATED TYPEDEF'S |
| ----------------------------------------------------------------------------*/ |
| |
| /*---------------------------------------------------------------------------- |
| ; STRUCTURES TYPEDEF'S |
| ----------------------------------------------------------------------------*/ |
| |
| /*---------------------------------------------------------------------------- |
| ; GLOBAL FUNCTION DEFINITIONS |
| ; Function Prototype declaration |
| ----------------------------------------------------------------------------*/ |
| Int decode_huff_cw_tab1( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab2( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab3( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab4( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab5( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab6( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab7( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab8( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab9( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab10( |
| BITS *pInputStream); |
| |
| Int decode_huff_cw_tab11( |
| BITS *pInputStream); |
| |
| Int decode_huff_scl( |
| BITS *pInputStream); |
| |
| Int infoinit( |
| const Int sampling_rate_idx, |
| FrameInfo **ppWin_seq_info, |
| Int *pSfbwidth128); |
| |
| Int huffcb( |
| SectInfo *pSect, |
| BITS *pInputStream, |
| Int *pSectbits, |
| Int tot_sfb, |
| Int sfb_per_sbk, |
| Int max_sfb); |
| |
| Int hufffac( |
| FrameInfo *pFrameInfo, |
| BITS *pInputStream, |
| Int *pGroup, |
| Int nsect, |
| SectInfo *pSect, |
| Int global_gain, |
| Int *pFactors, |
| Int huffBookUsed[]); |
| |
| Int huffspec_fxp( |
| FrameInfo *pFrameInfo, |
| BITS *pInputStream, |
| Int nsect, |
| SectInfo *pSectInfo, |
| Int factors[], |
| Int32 coef[], |
| Int16 quantSpec[], |
| Int16 tmp_spec[], |
| const FrameInfo *pLongFrameInfo, |
| PulseInfo *pPulseInfo, |
| Int qFormat[]); |
| |
| Int huffdecode( |
| Int id_syn_ele, |
| BITS *pInputStream, |
| tDec_Int_File *pVars, |
| tDec_Int_Chan *pChVars[]); |
| |
| void deinterleave( |
| Int16 interleaved[], |
| Int16 deinterleaved[], |
| FrameInfo *pFrameInfo); |
| |
| Int getics( |
| |
| BITS *pInputStream, |
| Int common_window, |
| tDec_Int_File *pVars, |
| tDec_Int_Chan *pChVars, |
| Int group[], |
| Int *pMax_sfb, |
| Int *pCodebookMap, |
| TNS_frame_info *pTnsInfo, |
| FrameInfo **pWinMap, |
| PulseInfo *pPulseInfo, |
| SectInfo sect[]); |
| |
| void calc_gsfb_table( |
| FrameInfo *pFrameInfo, |
| Int group[]); |
| |
| Int getmask( |
| FrameInfo *pFrameInfo, |
| BITS *pInputStream, |
| Int *pGroup, |
| Int max_sfb, |
| Int *pMask); |
| |
| void getgroup( |
| Int group[], |
| BITS *pInputStream); |
| |
| |
| /*---------------------------------------------------------------------------- |
| ; END |
| ----------------------------------------------------------------------------*/ |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |