data_formatchange.c
来自「完整的EVRC压缩解压缩算法源码,通过C-C++编译后可以运行!」· C语言 代码 · 共 57 行
C
57 行
#include "memory.h"
/*左移函数,左移一个帧,最后位补零*/
unsigned char *shiftleftframe(unsigned char *pin, int lengthp, int shiftcount)
{
// assert(pin != NULL);
unsigned char midvar;
int i;
for(i = 0; i < lengthp - 1; i++)
{
*(pin + i) <<= shiftcount;
midvar = *(pin + i + 1);
midvar >>= (8 - shiftcount);
*(pin + i) |= midvar;
}
*(pin + lengthp - 1) <<= shiftcount;
return (pin);
}
unsigned short format_change(unsigned char *pinStream, short int *poutStream)
{
short int rate;
unsigned char rate_get;
int i;
rate_get = *pinStream;
switch(rate_get)
{
case 1 :
{
rate = 0x0004;
shiftleftframe(pinStream, 22, 1);
for(i = 0; i < 11; i++)
{
*(poutStream + i) = (short int)((*(pinStream + 1 + 2 * i) << 8) |*(pinStream + 2*i + 2));
}
break;
}
case 2 : {
rate = 0x0003;
for(i = 0; i < 5; i ++ )
{
*(poutStream + i) = (short int)((*(pinStream + 1 + 2 * i) << 8) |*(pinStream + 2*i + 2));
}
memset(poutStream + 6, 0, 12);
break;
}
case 3 : {
rate = 0x0001;
*(poutStream) = (short int)((*(pinStream + 1) << 8) | *(pinStream + 2));
memset(poutStream + 2, 0, 21);
break;
}
}
return rate;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?