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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lanaudio.h

?? G711語音壓縮源碼
?? H
字號:
// LanAudio.h: interface for the CLanAudio class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LANAUDIO_H__F79CFD70_AFE8_11D2_B7C8_444553540000__INCLUDED_)
#define AFX_LANAUDIO_H__F79CFD70_AFE8_11D2_B7C8_444553540000__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

typedef int          BOOL;
#ifndef FALSE
#define FALSE               0
#endif
#ifndef TRUE
#define TRUE                1
#endif


#define  Frame       240
#define  G711_Frame  160
#define  LpcFrame    180
#define  SubFrames   4
#define  SubFrLen    (Frame/SubFrames)

#define  LpcOrder          10
#define LpcOrderP1         (LpcOrder+1)

#define  PitchMin          18
#define  PitchMax          (PitchMin+127)

#define SizErr              5

#define NbAvAcf            3  // Nb of frames for Acf average               
#define NbAvGain           3  // Nb of frames for gain average              
#define SizAcf             ((NbAvAcf+1)*LpcOrderP1) // size of array Acf    

struct CODSTATDEF
{
	// High pass variables 
	float    HpfZdl;
	float    HpfPdl;

	// Lsp previos vector 
	float   PrevLsp[LpcOrder];

	// All pitch operation buffers 
	float    PrevWgt[PitchMax];
	float    PrevErr[PitchMax];
	float    PrevExc[PitchMax];

	// Requered memory for the delay 
	float   PrevDat[LpcFrame-SubFrLen];

	// Used delay lines 
	float    WghtFirDl[LpcOrder];
	float    WghtIirDl[LpcOrder];
	float    RingFirDl[LpcOrder];
	float    RingIirDl[LpcOrder];

	// For taming procedure 
	short   SinDet;
	float    Err[SizErr];
};

struct DECSTATDEF
{
	int     Ecount;
	float   InterGain;
	short  InterIndx;
	short  Rseed;
	float   Park;
	float   Gain;

	// Lsp previous vector 
	float   PrevLsp[LpcOrder];

	// All pitch operation buffers 
	float   PrevExc[PitchMax];

	// Used delay lines 
	float   SyntIirDl[LpcOrder];
	float   PostFirDl[LpcOrder];
	float   PostIirDl[LpcOrder];
};

// harmonic noise shaping filter parameters
struct PWDEF
{
	int   Indx;
	float Gain;
};

// subframe coded parameters 
struct SFSDEF
{
	int      AcLg;
	int      AcGn;
	int      Mamp;
	int      Grid;
	int      Tran;
	int      Pamp;
	int   Ppos;
};

// frame coded parameters 
struct LINEDEF
{
	short   Crc;
	int   LspId;
	int      Olp[SubFrames/2];
	SFSDEF   Sfs[SubFrames];
};

// Coder part 
struct CODCNGDEF
{
	float   CurGain;
	short  PastFtyp;
	float   Acf[SizAcf];
	float   LspSid[LpcOrder];
	float   SidLpc[LpcOrder];
	float   RC[LpcOrderP1];
	float   Ener[NbAvGain];
	short  NbEner;
	short  IRef;
	float   SidGain;
	short  RandSeed;
};

// Decoder part 
struct DECCNGDEF
{
	float   CurGain;
	short  PastFtyp;
	float   LspSid[LpcOrder];
	float   SidGain;
	short  RandSeed;
};

// VAD static variables
struct VADSTATDEF
{
	short  Hcnt;
	short  Vcnt;
	float Penr;
	float Nlev;
	short  Aen;
	short  Polp[4];
	float NLpc[LpcOrder];
};

// pitch postfilter parameters 
struct PFDEF
{
	int     Indx;
	float   Gain;
	float   ScGn;
};

typedef enum tagEAudioCodec{
		G711_A,
		G711_U,
		G723
	}EAudioCodec;
//class  AFX_EXT_CLASS CLanAudioEncoder
class  CLanAudioEncoder
{
public:
	CLanAudioEncoder(int iBitRate = 0, BOOL bHighPassFilter = TRUE, BOOL bVad = TRUE,EAudioCodec nCodec=G723);
					// 6.3k highpass vad default
	virtual ~CLanAudioEncoder();

	int Encode(const short * iFrame, char * cCode);
	void Mute() { m_bMute = TRUE; };
	void Unmute(){ m_bMute = FALSE; };
protected:
	int EncodeG711(const short *iFrame,unsigned char *cCode);
	int EncodeG723(const short * iFrame, char * cCode);

	short random_number(short np1, short *nRandom);
	void  Upd_Ring(float *Dpnt, float *QntLpc, float *PerLpc, float *PrevErr);
	void  Sub_Ring(float *Dpnt, float *QntLpc, float *PerLpc, float *PrevErr, PWDEF Pw);
	void  Error_Wght(float *Dpnt, float *PerLpc);
	void  Comp_Lpc(float *UnqLpc, float *PrevDat, float *DataBuff);
	void  Calc_Exc_Rand(float curGain, float *PrevExc, float *DataExc, short *nRandom, LINEDEF *Line);
	void  Decod_Acbk(float *Tv, float *PrevExc, int Olp, int Lid, int Gid);
	void  Find_Acbk(float *Tv, float *ImpResp, float *PrevExc, LINEDEF *Line, int Sfc);
	int   Test_Err(int Lag1, int Lag2);
	void  Update_Err(int Olp, int AcLg, int AcGn);
	int   ACELP_LBC_code(float X[], float h[], int T0, float code[], int *ind_gain, int *shift, int *sign, float gain_T0);
	int   D4i64_LBC(float Dn[], float rr[], float h[], float cod[], float y[], int *code_shift, int *sign);
	void  Find_Fcbk(float *Dpnt, float *ImpResp, LINEDEF *Line, int Sfc);
	void  Line_Pack(LINEDEF *Line, char *Vout, short Ftyp);
	void  Rem_Dc(float *Dpnt);
	BOOL  LpcDiff(float *RC, float *ptrAcf, float alpha);
	void  CalcRC(float *Coeff, float *RC);
	void  ComputePastAvFilter(float *Coeff);
	void  Update_Acf(float *Acf_sf);
	BOOL  Comp_Vad(float *Dpnt);
	void  Cod_Cng(float *DataExc, short *Ftyp, LINEDEF *Line, float *QntLpc);
	BOOL  Coder(float *DataBuff, char *Vout);
	void  reset_max_time(void);
	void  Init_Cod_Cng(void);
	void  Init_Vad(void);
	void  Init_Coder(void);

protected:
	BOOL UseHp;
	BOOL UseVx;
	int  WrkRate;
	int  extra;
	float DataBuff[Frame];
	CODCNGDEF  CodCng;
	VADSTATDEF VadStat;
	CODSTATDEF CodStat;
	EAudioCodec	m_nCodec;
	BOOL   m_bMute;//TRUE,對進行靜音處理,否則不進行靜音處理
};

//class AFX_EXT_CLASS CLanAudioDecoder  
class  CLanAudioDecoder  
{
public:
	CLanAudioDecoder(BOOL bPostFilter = TRUE,EAudioCodec nCodec=G723);
	virtual ~CLanAudioDecoder();

	int Decode(short * iFrame, char * cCode);
	void Mute() { m_bMute = TRUE; };
	void Unmute(){ m_bMute = FALSE; };
protected:
	int DecodeG711(unsigned char* input,short *decode);
	int DecodeG723(short* iFrame, char* cCode);

	short  random_number(short np1, short *nRandom);
	float Spf(float *Tv, float *Lpc);
	void   Synt(float *Dpnt, float *Lpc);
	PFDEF  Comp_Lpf(float *Buff, int Olp, int Sfc);
	PFDEF  Get_Ind(int Ind, float Ten, float Ccr, float Enr);
	void   Calc_Exc_Rand(float curGain, float *PrevExc, float *DataExc, short *nRandom, LINEDEF *Line);
	void   Decod_Acbk(float *Tv, float *PrevExc, int Olp, int Lid, int Gid);
	void   Fcbk_Unpk(float *Tv, SFSDEF Sfs, int Olp, int Sfc);
	void   Scale(float *Tv, float Sen);
	LINEDEF Line_Unpk(char *Vinp, short *Ftyp, short Crc);
	void   Dec_Cng(short Ftyp, LINEDEF *Line, float *DataExc, float *QntLpc);
	BOOL   Decod(float *DataBuff, char *Vinp, short Crc);
	void   Init_Dec_Cng(void);
	void   Init_Decod(void);

protected:
	DECCNGDEF  DecCng;
	DECSTATDEF DecStat;
	float DataBuff[Frame];
	BOOL UsePf;
	int  WrkRate;
	EAudioCodec m_nCodec;
	BOOL   m_bMute;//TRUE,對進行靜音處理,否則不進行靜音處理
};

#endif // !defined(AFX_LANAUDIO_H__F79CFD70_AFE8_11D2_B7C8_444553540000__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本人妖一区二区| 日本欧洲一区二区| 久久精品一区二区三区av| 91精品国产综合久久精品app | 欧美成人三级电影在线| 777午夜精品视频在线播放| 欧美一区二区在线免费播放| 欧美精品一二三四| 欧美成人精品二区三区99精品| 欧美一区二区三区人| 日韩欧美国产一区二区三区| 久久一区二区三区国产精品| 中文欧美字幕免费| 一个色妞综合视频在线观看| 午夜精品久久久| 美女www一区二区| 成人av免费网站| 欧美日韩一区不卡| xfplay精品久久| 亚洲色大成网站www久久九九| 亚洲一区在线视频| 久久精品免费观看| 成人免费视频一区二区| 欧美日韩一区精品| 精品捆绑美女sm三区| 国产精品国产三级国产专播品爱网| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲成人黄色小说| 国产中文字幕精品| 色猫猫国产区一区二在线视频| 欧美婷婷六月丁香综合色| 日韩精品资源二区在线| 亚洲图片另类小说| 麻豆精品视频在线观看| 91美女片黄在线观看91美女| 91精品蜜臀在线一区尤物| 国产精品久久久久7777按摩| 日韩成人免费电影| 色综合久久九月婷婷色综合| 日韩精品一区二区三区老鸭窝| 亚洲柠檬福利资源导航| 韩国毛片一区二区三区| 欧美日免费三级在线| 久久精品欧美日韩精品| 男人的j进女人的j一区| 在线观看日韩高清av| 国产婷婷色一区二区三区四区 | 亚洲精品在线电影| 亚洲自拍偷拍av| 成人的网站免费观看| 26uuu亚洲综合色| 亚洲午夜电影在线观看| 99re热视频精品| 中文字幕欧美日韩一区| 国内外成人在线| 日韩欧美视频一区| 午夜精品福利在线| 欧美日韩日日夜夜| 亚洲一区二区三区视频在线播放| 不卡影院免费观看| 国产日本欧美一区二区| 精品一区二区三区影院在线午夜 | 国产999精品久久久久久| 日韩视频免费直播| 日本视频中文字幕一区二区三区| 欧美中文一区二区三区| 亚洲在线视频一区| 欧洲av在线精品| 一区二区三区中文字幕| 色综合久久中文综合久久牛| 自拍偷拍亚洲欧美日韩| 99在线精品观看| 亚洲天堂福利av| 91黄色小视频| 亚洲影院在线观看| 欧美日韩国产高清一区二区| 首页国产欧美日韩丝袜| 91精品国产欧美一区二区成人| 日韩激情一二三区| 日韩视频在线观看一区二区| 久久99这里只有精品| 久久久影院官网| 不卡的av在线| 亚洲一区二区偷拍精品| 欧美区在线观看| 激情亚洲综合在线| 日本一区二区视频在线| 97久久精品人人做人人爽 | 欧美精品免费视频| 日本不卡高清视频| 久久精品夜夜夜夜久久| 成人免费毛片高清视频| 亚洲午夜久久久久| 日韩欧美国产不卡| 成人av午夜影院| 午夜久久久影院| 国产午夜精品久久| 色婷婷av久久久久久久| 日韩电影在线观看电影| 欧美国产激情二区三区| 欧美熟乱第一页| 国产一区二区导航在线播放| 国产精品国产三级国产aⅴ入口 | 日韩激情视频在线观看| 国产亚洲欧美一级| 欧美日韩国产bt| 福利电影一区二区| 日韩精品午夜视频| 亚洲欧洲美洲综合色网| 91精品啪在线观看国产60岁| 成人小视频免费在线观看| 亚洲高清免费视频| 国产精品电影一区二区| 欧美电影免费观看完整版| 色综合久久综合中文综合网| 激情综合五月天| 亚洲最大成人网4388xx| 久久久久久免费| 欧美一区二区三区在线视频| 色综合欧美在线视频区| 国产高清亚洲一区| 日韩中文字幕区一区有砖一区| 国产精品久久久久7777按摩 | 暴力调教一区二区三区| 日韩在线一区二区| 亚洲综合在线视频| 国产精品色哟哟网站| 精品国产乱码久久久久久蜜臀| 99国产精品99久久久久久| 国产一本一道久久香蕉| 日本不卡高清视频| 五月天国产精品| 一区二区三区在线观看欧美| 国产精品乱子久久久久| 久久一夜天堂av一区二区三区| 欧美一区二区在线不卡| 欧美日本韩国一区| 欧美日韩国产美| 欧美日本一道本| 欧美日韩国产片| 欧美日韩国产天堂| 欧美人伦禁忌dvd放荡欲情| 欧美怡红院视频| 色激情天天射综合网| 99久久久国产精品免费蜜臀| 国产成人综合精品三级| 国产乱码精品一区二区三区av| 精品一区二区在线视频| 国产一区二区在线视频| 国产麻豆视频一区二区| 国产精品一区二区在线观看网站| 国产专区综合网| 成人夜色视频网站在线观看| 从欧美一区二区三区| 成人黄页在线观看| 99久久er热在这里只有精品15| 94-欧美-setu| 91福利小视频| 欧美精品在欧美一区二区少妇| 欧美日韩中文字幕一区| 欧美一区二区网站| 欧美精品一区二区三区四区| 久久一夜天堂av一区二区三区 | 亚洲伦理在线免费看| 亚洲精品水蜜桃| 婷婷六月综合网| 国内精品久久久久影院薰衣草| 国产一区二区看久久| 99久久国产免费看| 欧美精品免费视频| 欧美不卡一区二区三区| 国产精品美女视频| 一区二区三区在线观看动漫| 日韩电影在线看| 成人性生交大片免费| 欧美在线观看你懂的| 日韩一级成人av| 国产精品国产精品国产专区不片 | 国精产品一区一区三区mba视频| 成人午夜av在线| 欧美日韩成人一区| 中文字幕免费一区| 午夜精品久久久久影视| 国产精品一区二区你懂的| 色综合久久中文综合久久97 | 国产精品毛片久久久久久| 亚洲午夜日本在线观看| 韩国精品久久久| 欧美亚洲动漫制服丝袜| 久久久精品欧美丰满| 亚洲一区二区在线播放相泽 | 在线观看日韩国产| 国产亚洲成av人在线观看导航| 亚洲综合激情网| 国产一区91精品张津瑜| 欧美色涩在线第一页| 欧美国产激情二区三区| 蜜桃av一区二区| 欧美日韩综合色| 亚洲视频一区二区在线观看|