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