www.pudn.com > iMagic_2006_0428_v098r23.rar > aac_function.h


/* 
**************************************************************** 
*                      Magic Pixel Inc. 
*    Copyright 2004, Magic Pixel Inc., HsinChu, Taiwan 
*                    All rights reserved. 
* 
* 
* 
* Filename:    aac_function.H 
* 
* Programmer:    Honda  
*                MPX E340 division 
* 
* Created: 11/24/2005 
* 
* Description: Common header file 
* 
*         
* Change History (most recent first): 
*     <1>     11/24/2005    Honda    first file 
**************************************************************** 
*/ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#ifndef aac_function_h 
#define aac_function_h 
 
#define Big_Endian 
 
void cfftb_512_I(int32_t *c, int32_t *ch, short *wa); 
void cfftb_64_I(int32_t *c, int32_t *ch, short *wa); 
void passf2pos_I(int32_t ido, int32_t N2, int32_t *cc, int32_t *ch, short *wa); 
 
 
 
 
void De_interleave_I(ic_stream *ics, int32_t *spec_data_In,  
            int32_t *spec_data_Out); 
void is_decode_I(ic_stream *ics, ic_stream *icsr, int32_t *l_spec, int32_t *r_spec);  
 
void imdct_short_I_N(int32_t *X_in, int32_t *X_out, int32_t *X_temp,  
         int32_t *overlap, int8_t window_shape, int8_t window_shape_pre, int8_t type); 
void imdct_long_I(int32_t *X_in, int32_t *X_out, int32_t * overlap,  
         int8_t window_shape, int8_t window_shape_pre, uint8_t win_type); 
 
//---------------------------------------------------------------------------------------- 
void ms_decode_I(ic_stream *ics, int32_t *l_spec, int32_t *r_spec); //, int32_t frame_len); 
 
//------------------------------------------------------------------------------------- 
uint8_t single_lfe_channel_element_I( uint8_t channel); 
 
uint8_t channel_pair_element_I( uint16_t channels); 
 
//------------------------------------------------------------------------------------ 
//-- for fixed-point 
unsigned char individual_channel_stream_I(int common_window, 
                                         ic_stream *ics, unsigned char scal_flag, 
                                         int32_t *spec_data); 
unsigned char decode_scale_factors(ic_stream *ics); 
 
//---------------------------------------------------------------------------------------------- 
uint8_t ics_info(ic_stream *ics); 
 
void tns_lpc_frame_I(ic_stream *ics, tns_info_I *tns,  
                        uint8_t sr_index, int32_t *spec); 
void synthesis_I(ic_stream_part *ics, int32_t *freq_in, uint8_t ch); 
 
 
uint8_t huffman_spectral_data_I(uint32_t cb, int32_t *sp, int32_t exp, int32_t frac); 
 
int8_t decode_scf(); 
void dehuffman_cb1_cb2(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type, int cb,int sfb_width_sect); 
void dehuffman_cb3(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type,int sfb_width_sect); 
void dehuffman_cb4(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type,int sfb_width_sect); 
void dehuffman_cb5(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type,int sfb_width_sect); 
void dehuffman_cb6(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type,int sfb_width_sect); 
void dehuffman_cb7_cb9(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type, int cb,int sfb_width_sect); 
void dehuffman_cb8_cb10(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type, int cb,int sfb_width_sect); 
void dehuffman_cb11(int16_t *scf_ptr, uint16_t *off_ptr,  
   int32_t *sp, int type,int sfb_width_sect); 
//------- aac_stream.cpp --------- 
 
unsigned int aac_bit_read(int len); 
unsigned int aac_bit_read3(int len); 
unsigned int aac_1bit_read(); 
unsigned int aac_bit_view1(int len); 
unsigned int aac_bit_view2(int len); 
unsigned int aac_bit_view3(int len); 
void aac_bit_flush(int len); 
void aac_byte_align(); 
int aac_byte_read(); 
void section_table(void); 
void huffman_create_tab(void); 
void is_pns_tns_create_tab(void); 
int32_t dequantize_pall(int32_t value, int32_t exp, int32_t frac); 
int dequantize_p1(int32_t exp, int32_t frac); 
int dequantize_p2(int32_t exp, int32_t frac); 
int dequantize_p3(int32_t exp, int32_t frac); 
int dequantize_p4(int32_t exp, int32_t frac); 
int32_t dequantize_p256(int32_t value, int32_t exp, int32_t frac); 
uint8_t pulse_decode_I(ic_stream *ics, int32_t *spec_data); 
uint8_t program_config_element(program_config *pce); 
int adts_fixed_header(void); 
 
 
//uint8_t adts_frame(adts_header *adts); 
//void get_adif_header(adif_header *adif); 
void MagicPixel_AAC_ADTS_header(void); 
void MagicPixel_AAC_ADIF_header(void); 
void MagicPixel_bitstream_callback(unsigned char * buf, int len); 
 
 
uint8_t fill_element(drc_info *drc); 
uint16_t data_stream_element(); 
void decode_cpe(uint8_t id_syn_ele); 
void decode_sce_lfe(uint8_t id_syn_ele); 
void MagicPixel_post_process(aac_dec *pad); 
 
 
void MagicPixel_AAC_fill_frame(void); 
aac_dec * MagicPixel_AAC_init(void); 
void peudo_tns_data(aac_dec *pad, ic_stream *ics); 
 
//------- table swap function --------- 
#ifdef	Big_Endian 
void ASM_Load_DeQuanHumTable(); 
void ASM_Load_OverlapChX(int *dest, int *scr); 
void ASM_Load_FFT_long(); 
void ASM_Load_FFT_Short(); 
void ASM_Load_LongWindow(const short *src); 
void ASM_Load_ShortWindow(const short *src); 
#else 
void Load_DeQuanHumTable(); 
void Load_OverlapChX(int *dest, int *scr); 
void Load_FFT_long(); 
void Load_FFT_Short(); 
void Load_LongWindow(const short *src); 
void Load_ShortWindow(const short *src); 
#endif 
 
#endif