亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fmad.h

?? embedded linux 下MP3的解碼程序
?? H
字號:
//****************************************************************************
// 
// Faraday Technology Coporation 
// Copyright (C) Microsoft Corporation. All rights reserved.
//                                
//*--------------------------------------------------------------------------*
//* Name:FMAD.h                                                              *
//* Description: MPEG-1/2 Audio Layer 3 Decoder API definition               *
//* Author: Shawn, Hsiao                                                     *
//* Date: 2006/06/06                                                         *
//* Version:1.0	                                                             *
//****************************************************************************

#ifndef FMP3D_H_INCLUDED
#define FMP3D_H_INCLUDED

struct MP3dec_info;

//============================================================================
//        Definition                                
//============================================================================

//******************************************************************************
// 
#define IN_SIZE 1024     
//
//******************************************************************************  
//
// Define input buffer size as 1024
//
//******************************************************************************

//******************************************************************************
// 
#define OUT_SIZE 4608    
//
//******************************************************************************  
//
// Define output buffer size as 4608
//
//******************************************************************************

//******************************************************************************
// 
#define FARADAY_EQ     
//
//******************************************************************************  
//
// If define this term, the Equalizer (EQ) is inserted.
//
//******************************************************************************

//******************************************************************************
// 
#define DISPLAYSET_MP3DEC_BY_FRAME     
//
//******************************************************************************  
//
// If define this term, the decoder will call call-back function 
// "DisplaySet_MP3dec_type" once in a frame. Decoder may give response
// frequently. It might consume more computing power because the function is calling.
// If non-define, the default case is once per input data.
//
//******************************************************************************

//******************************************************************************
//
#define DISPLAY_AACDEC_INFO
//
//******************************************************************************  
//
// If define this term, the decoder will get AAC decoder information. 
//
//******************************************************************************

//******************************************************************************
//
#define DISPLAY_TIME_INFO
//
//******************************************************************************  
//
// If define this term, the decoder will get time information. 
//
//******************************************************************************

//============================================================================
//        Call-back function type define                                
//============================================================================

//******************************************************************************
// 
typedef int (*OutputPCM_type)(char *, int, int);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> output buffer pointer 
// parameter 2 -> output data size in bytes 
// parameter 3 -> output file ("0" means no file output)
// output: data size which is really output in bytes
//
// This call-back function is called when decoder decoded one frame data.
// For the case of MP3 decoder, the data in one frame is fixed to 9216 bytes
// (32-bits output sample) or 4608 bytes (16-bits output sample).
// It is suggested that when the function is called, the main program must 
// get all output samples at once. Otherwise, the decoder will keep calling
// until all output samples are got.
// The correct  size of output data, which is really got from output buffer, must be 
// given to make sure the decoder works normally.
//
//******************************************************************************

//******************************************************************************
// 
typedef int (*InputData_type)(char *, int, int);	
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> input buffer pointer
// parameter 2 -> input size
// parameter 3 -> input file ("0" means no file input)
// output: data size which is really input in bytes
//
// This call-back function is called when decoder needs more data to input buffer.
// The decoder gives an expected data size and a pointer, which the data must be placed at.
// The correct  size of input data, which is really placed to input buffer, must be 
// given to make sure the decoder works normally.
//
//******************************************************************************

//******************************************************************************
// 
typedef int (*DataSeek_type)(int, int, int);     
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> data seek size
// parameter 2 -> seek type 0: seek from start, 1: seek from current, 2: seek from end
// parameter 3 -> input file ("0" means no file input)
// output: error message -> 0: ok, others: fail
//
// This function is called when the decoder want to seek to some specific point in 
// the bitstream or file.
//
//****************************************************************************** 

//******************************************************************************
// 
typedef void (*DisplaySet_MP3dec_type)(struct MP3dec_info *);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> MP3 decoder information pointer
// output: NA
//
// This function is called when the decoder can serve the display and set process.
// It can be defined 1) once per frame, or 2) once per input data.
// If the program does not need to display or set, this function must be sure as
// an empty function. Otherwise, it may does some unpredictable processing.
//
//******************************************************************************

//============================================================================
//        Data structure                                
//============================================================================
 
//******************************************************************************
// 
// struct MP3dec_info
//  
//******************************************************************************
//            
// This structure defines all MP3 decoder information with elements:
// 1) input_file: save the input file pointer. If no one, set it "0".
// 2) output_file: save the output file pointer. If no one, set it "0".
// 3) input_buf: save the pointer of input buffer.
// 4) output_buf: save the pointer of output buffer.
// 5) layer: information of layer.
// 6) bit_rate: information of bit rate.
// 7) sampling_frequency: information of sampling rate.
// 8) mode: information of channel mode -> 0: mono, 1: stereo.
// 9) mode_ext: information of extension channel mode.
// 10) EQ: information of EQ mode.
// 11) count: information of timer -> bits[31:26] is minute, bits[25:20] is second, 
//                                    bits[19:0] is counter which is used to count sum of output samples.
// 12) InputData_type: callback function.
// 13) OutputPCM_type: callback function.
// 14) DataSeek_type: callback function.
// 15) DisplaySet_MP3dec_type: callback function.
// 
//******************************************************************************     

struct MP3dec_info
{
	int input_file;			        							// input file
	int output_file;		        							// output file
	char *input_buf;		        							// input buffer
	char *output_buf;		        							// ouput buffer
	int layer;			        									// layer information
	int bit_rate;			        								// bit rate information
	int sampling_frequency;		        				// sampling rate information
	int mode;			        										// channel mode information
	int mode_ext;			        								// extension channel mode information
	int EQ;				        										// equalizer mode
	unsigned int count;		        						// [6-bits, 6-bits, 20-bits] = [minute, second, count]
	InputData_type InputData;	        				// call-back function	
	OutputPCM_type OutputPCM;	        				// call-back function
	DataSeek_type DataSeek;                 	// call-back function
	DisplaySet_MP3dec_type DisplaySet_MP3dec; // call-back function		
};

//============================================================================
//        Functions                                
//============================================================================

//******************************************************************************
// 
int init_MP3dec_info(struct MP3dec_info *);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> MP3 decoder information
// output: error message -> 0: ok, others: fail 
//
// This function is used to initialize MP3 decoder bit-stream information.
//
//****************************************************************************** 

//******************************************************************************
// 
int init_Data(struct MP3dec_info *, int, int, char *, char *);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> MP3 decoder information
// parameter 2 -> input file pointer
// parameter 3 -> output file pointer
// parameter 4 -> input buffer pointer
// parameter 5 -> output buffer pointer
// output: error message -> 0: ok, others: fail 
// 
// This function  is used to set all data information.
//
//******************************************************************************

//******************************************************************************
// 
int init_CallbackFunction(struct MP3dec_info *, InputData_type, OutputPCM_type, DataSeek_type, DisplaySet_MP3dec_type);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> MP3 decoder information.
// parameter 2 -> Input data function pointer
// parameter 3 -> Output PCM function pointer
// parameter 4 -> Data seek function pointer
// parameter 5 -> Display and set function pointer
// output: error message -> 0: ok, others: fail 
//
// This function is used to set all call-back functions. 
//
//******************************************************************************

//******************************************************************************
// 
int set_Faraday_EQ(int);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> EQ mode
// output: EQ mode which is set
//
// This function is used to set Faraday EQ mode.
//
//****************************************************************************** 

//******************************************************************************
// 
int init_Faraday_MP3dec(struct MP3dec_info *);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> MP3 decoder information
// output: error message -> 0: ok, 1: error 
//
// This function is used to initial MP3 Decoder. There are three steps:
// 1) Check ID3 tag. If there is one, skip it.
// 2) Find the first valid header (frame) and ignore the data before it.
// 3) Initial MP3 decoder.
//
//******************************************************************************

//******************************************************************************
// 
int do_Faraday_MP3dec(struct MP3dec_info *);
//  
//******************************************************************************
//      
// input: 
// parameter 1 -> MP3 decoder information
// output: error message -> 0: ok, 1: input data error 
//
// This function is the main decoding processing including:
// 1) input data
// 2) sync. the valid frame
// 3) decoding
// 4) output data when one frame is decoded
// 5) display and set once per frame or per input data
// 6) get time information per frame
//
//******************************************************************************

#endif //FMP3D_H_INCLUDED

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美aaa在线| 欧美精品一区二区三区蜜桃| 国产精品综合视频| 国产在线精品一区二区| 麻豆精品一区二区综合av| 婷婷亚洲久悠悠色悠在线播放| 亚洲综合一区二区| 亚洲成人免费影院| 日韩黄色免费电影| 国内久久精品视频| 国产成人精品网址| 色综合中文字幕国产| 成人黄色小视频| www.亚洲色图.com| 欧美色成人综合| 9191国产精品| 欧美极品xxx| 亚洲精品高清在线观看| 婷婷久久综合九色综合伊人色| 蜜桃视频一区二区三区| 国产成人av一区| 91成人在线免费观看| 91麻豆精品国产91久久久| 久久人人97超碰com| 亚洲日本中文字幕区| 日本免费在线视频不卡一不卡二| 国产美女精品一区二区三区| 成人动漫精品一区二区| 91麻豆精品国产91久久久资源速度 | 日本vs亚洲vs韩国一区三区二区| 精品亚洲porn| 欧美在线不卡一区| 久久综合资源网| 亚洲国产欧美在线| 国产乱对白刺激视频不卡| 色老汉一区二区三区| 欧美不卡在线视频| 亚洲精品少妇30p| 国产一区二区视频在线| 欧美优质美女网站| 国产蜜臀av在线一区二区三区| 亚洲高清不卡在线| a级精品国产片在线观看| 91精品国产福利| 亚洲精品免费在线| 粉嫩av一区二区三区粉嫩| 欧美老人xxxx18| 亚洲男人的天堂一区二区| 麻豆久久久久久久| 欧美精品v国产精品v日韩精品| 国产精品女主播在线观看| 日韩av在线发布| 欧美午夜电影网| 亚洲男同1069视频| 成人综合激情网| 久久色在线观看| 免费看欧美女人艹b| 欧美日韩国产精品成人| 国产精品卡一卡二卡三| 国产成人自拍网| 久久蜜桃av一区精品变态类天堂 | 欧美日韩高清不卡| 亚洲免费视频中文字幕| 丰满亚洲少妇av| 久久久综合激的五月天| 久久精品国产久精国产| 欧美一区二区三区成人| 亚洲成人午夜电影| 欧美福利视频导航| 亚洲成人一区在线| 欧美精品在线一区二区| 日韩在线卡一卡二| 欧美福利一区二区| 日本v片在线高清不卡在线观看| 欧美日韩免费电影| 首页国产丝袜综合| 日韩免费视频一区| 国模少妇一区二区三区| 久久这里只有精品6| 国产精品亚洲人在线观看| 久久久国产午夜精品| 国产福利精品一区| 国产精品超碰97尤物18| 99精品桃花视频在线观看| 亚洲乱码国产乱码精品精的特点| 一本大道久久a久久综合| 亚洲综合自拍偷拍| 欧美一级在线视频| 狠狠色丁香九九婷婷综合五月| 久久影院电视剧免费观看| 风间由美一区二区三区在线观看 | 日韩三级在线观看| 国产美女在线观看一区| 亚洲视频在线一区观看| 在线观看一区不卡| 蜜桃久久久久久久| 国产精品亲子乱子伦xxxx裸| 99re免费视频精品全部| 天天操天天干天天综合网| 精品少妇一区二区| 成a人片国产精品| 午夜电影久久久| 国产欧美日韩久久| 欧美乱妇23p| 国产一区不卡视频| 亚洲福利一区二区三区| 欧美va在线播放| 一本大道久久a久久精品综合| 日本大胆欧美人术艺术动态| 国产精品色眯眯| 欧美高清dvd| 91免费在线视频观看| 久久国产精品99精品国产| 国产精品久久久久一区二区三区| 欧美特级限制片免费在线观看| 极品少妇xxxx精品少妇| 一区二区久久久久| 日本一区二区成人在线| 制服丝袜亚洲播放| 色综合欧美在线视频区| 韩日欧美一区二区三区| 亚洲成a人v欧美综合天堂下载| 国产精品午夜在线观看| 欧美一区二区三区免费| 欧美午夜精品久久久久久超碰| 极品尤物av久久免费看| 日韩精品亚洲一区| 亚洲综合图片区| 国产精品久久久久aaaa樱花| 欧美成人video| 欧美精品久久99| 欧美视频中文字幕| 99re在线精品| 成人涩涩免费视频| 国产一区二区视频在线| 裸体在线国模精品偷拍| 亚洲成av人片一区二区梦乃| 亚洲精品高清视频在线观看| 国产日产欧美一区二区视频| 精品国产乱码久久久久久1区2区| 欧美久久久久久久久久| 欧美三区在线观看| 欧美色图激情小说| 91久久精品午夜一区二区| 99精品国产91久久久久久| 国产精品66部| 国产成人精品亚洲午夜麻豆| 国产乱人伦精品一区二区在线观看| 美女一区二区三区在线观看| 天天免费综合色| 日本欧美一区二区| 免费观看在线色综合| 麻豆国产精品一区二区三区| 日本aⅴ精品一区二区三区| 蜜臀久久99精品久久久久久9| 日韩av高清在线观看| 精品中文字幕一区二区小辣椒| 久久国产夜色精品鲁鲁99| 精品一区二区三区的国产在线播放| 免费观看在线色综合| 狠狠狠色丁香婷婷综合激情 | 91国偷自产一区二区三区成为亚洲经典| 99久久精品国产毛片| 99精品黄色片免费大全| 欧美性高清videossexo| 欧美老肥妇做.爰bbww| 91精品午夜视频| 久久嫩草精品久久久精品| 国产精品灌醉下药二区| 亚洲午夜精品网| 九九热在线视频观看这里只有精品| 久久99久久久久久久久久久| 国产精品18久久久久久久网站| 丁香五精品蜜臀久久久久99网站 | 久久嫩草精品久久久精品| 国产精品久久午夜| 亚洲国产日韩综合久久精品| 另类人妖一区二区av| 成a人片国产精品| 欧美电影一区二区| 中文字幕乱码久久午夜不卡| 悠悠色在线精品| 精品综合久久久久久8888| 99热精品一区二区| 欧美不卡123| 亚洲乱码中文字幕| 国内外精品视频| 在线精品视频一区二区| 日韩欧美你懂的| 亚洲色图另类专区| 韩国av一区二区三区在线观看| 91在线精品一区二区三区| 日韩视频不卡中文| 亚洲欧美日韩久久| 国产露脸91国语对白| 欧美日韩成人综合天天影院| 国产精品视频你懂的| 麻豆freexxxx性91精品| 91麻豆免费视频| 中日韩免费视频中文字幕|