📄 g723.c
字号:
//////////////////////////////////////////////////
// G723.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "typedef2.h"
#include "cst2.h"
#include "tab2.h"
#include "lbccode2.h"
#include "coder2.h"
#include "decod2.h"
#include "exc2.h"
#include "util2.h"
#include "codcng2.h"
#include "deccng2.h"
#include "vad2.h"
#include "g723.h"
/* Global variables */
enum Wmode WrkMode = Both;
enum Crate WrkRate = Rate63;
Flag UseHp = True;
Flag UsePf = True;
Flag UseVx = False;
Flag UsePr = True;
int ReinitSize = 0;
void G723_Encode_Init(int bitrateidx)
{
Init_Coder( ) ;
/* Init Comfort Noise Functions */
if( UseVx )
{
Init_Vad();
Init_Cod_Cng( );
}
WrkRate = bitrateidx ? Rate63 : Rate53;
}
void G723_Decode_Init(int bitrateidx)
{
Init_Decod( ) ;
Init_Dec_Cng( );
WrkRate = bitrateidx ? Rate63 : Rate53;
}
FLOAT EncBuf[240];
//int G723_EncodeFrame(unsigned char *InBuf,unsigned char *OutBuf)
int G723_EncodeFrame(short *InBuf,unsigned char *OutBuf)
{
int i;
for(i=0;i<240;i++)
// EncBuf[i] = InBuf[i];//((short *)InBuf)[i];
EncBuf[i] = InBuf[i];//((short *)InBuf)[i];
Coder(EncBuf, OutBuf) ;
return 0;
}
FLOAT DecBuf[240];
int G723_DecodeFrame(unsigned char *InBuf,unsigned char *OutBuf)
{
Word16 Crc = 0;
short *ptmp=(short *)OutBuf;
int i;
Decod(DecBuf, InBuf, Crc);
for(i=0;i<240;i++)
{
if (DecBuf[i] < (FLOAT)-32767.5)
ptmp[i] = -32768L;
else if (DecBuf[i] > (FLOAT)32766.5)
ptmp[i] = 32767;
else
{
if (DecBuf[i] < 0)
ptmp[i] = (Word16) (DecBuf[i]-(FLOAT)0.5);
else
ptmp[i] = (Word16) (DecBuf[i]+(FLOAT)0.5);
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -