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

📄 mutexbuff.cpp

📁 G.723在ARM上的实现。实现平台为Linux2.4.8+ Intel Xscal。包括源代码
💻 CPP
字号:
#include "mutexbuff.h"#include <string.h>#include <iostream>using namespace std;MutexBuff::MutexBuff( int length, int num)	{	len=length;		frame=num;	buff=(unsigned char*)malloc(len);	framesize=len/frame;	}MutexBuff::~MutexBuff(){	free(buff);}void MutexBuff::writebuff(int index,unsigned char *srcbuf){	int i;	unsigned char *baseaddr;		i=index;	lock();	baseaddr=buff+framesize*i;	memcpy(baseaddr,srcbuf,framesize);	dataflag[i%frame]=1;	signal();	unlock();}void MutexBuff::readbuff(int index,unsigned char *dstbuf){	int i;	unsigned char *baseaddr;		i=index;		lock();	wait();	baseaddr=buff+framesize*i;	memcpy(dstbuf,baseaddr,framesize);	dataflag[i%frame]=0;	unlock();}void MutexBuff::testdata(int index){		int i;	unsigned char *base;	base=buff+framesize*index;	printf("framesize %d\n",framesize);	printf("buffindex %d\n",index);	printf("buffbaseaddr %x\n",buff);	printf("currentaddr %x\n",base);	for(i=0;i<framesize;i++)	printf("mutexbuff test data %d \n",base[i]);}void MutexBuff::clearbuff(int index){	int i;	i=index;	unsigned char *base;	base=buff+i*framesize;	memset(base,0,framesize);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -