mutexbuff.cpp
来自「G.723在ARM上的实现。实现平台为Linux2.4.8+ Intel Xsc」· C++ 代码 · 共 75 行
CPP
75 行
#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 + =
减小字号Ctrl + -
显示快捷键?