⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g723.c

📁 symbian 系统下的g.723 g.723_24实现, 本源码在 series60 sdk fp2下调试通过
💻 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 + -