资源简介

sbc codec子带压缩编解码的C++实现,用vc开发

资源截图

代码片段和文件信息



#include “main.h“
#include 
//#include 
//#include “main.h“
#include 


#define RAW_frame_LENGTH 512 /* 每帧的输入采样数据长度 byte  */

__int64 testtype;

unsigned char wavhadtab[]={
0x520x490x460x460xac0xae0x280x000x570x410x560x450x660x6d0x740x20
0x100x000x000x000x010x000x020x000x440xac0x000x000x100xb10x020x00
0x040x000x100x000x640x610x740x610x880xae0x280x00
};

void test(void);

void  SetTestWav(short * wdatasigned short val);

int EncFramNumIndex = 0 ;
void  BinToText(void);


void main(void)
{
/* #define pi 3.141592654
    int ik;
    for(k=0;k<16;k++)
{
for(i=0;i<8;i++)
printf(“%f “ cos(pi*(i+0.5)*(k+4)/8));
printf(“\n“);
}
*/

FILE * fInput;
FILE * fSBC;
FILE * fOutput;
char oval;
char  name[50];
int encframdecfram;
int encdalengdecdalengbackleng;
int SBC_Fram_leng ;

short  RawData[600];
unsigned char  wrsbc[200];
char  wrwav[600];
// sbc_t sbc;

void * hEnc ;
int frameSize;
signed short teval = 0 ;
//test();

printf(“SBC 编解码测试\n“);
printf(“Please input the file name:“);
scanf(“%s“name);

if((fInput = fopen(name“rb“)) == NULL)
{
printf(“Fail to open file\n“);
}
else{
printf(“%s is open\n“name);
}

if(remove(“SBC.bin“) == -1)   
perror(“Could not delete SBC.bin“);   
else   
printf(“Deleted SBC.bin\n“   );   

if(remove(“Output.wav“) == -1)   
perror(“Could not delete Output.wav “);   
else   
printf(“Deleted Output.wav \n“   );  

fSBC = NULL ;
if(fInput != NULL)
fSBC = fopen(“SBC.bin““wb“);
if(fInput != NULL)
rewind(fInput);
if(fSBC != NULL)
rewind(fSBC);

hEnc = (void *)0;
hEnc = sbc_init(AUDIO_SAMPRATE AUDIO_BITRATEAUDIO_CHANNELS);
//------------------------------------------------------
// encode
encfram = 0;
if(fInput != NULL)
{
printf(“Encoding\n“);
fread(RawData0x2c1fInput);
encdaleng = (int)RawData[0x15]*0x10000 + RawData[0x14];
encdaleng = 3401*512;
backleng = encdaleng ;
while((encdaleng > RAW_frame_LENGTH)&&(feof(fInput)==NULL))
{
//------------------------------------
//       读取数据
fread(RawDataRAW_frame_LENGTH1fInput);
EncFramNumIndex++;
if(EncFramNumIndex==3055)
{
EncFramNumIndex = 0 ;
}

// SetTestWav(RawDatateval);
// teval += 256*3;
// int sbc_encode(void * hEnc UINT32* pnframeSize UINT8 * pframe UINT32 nRawLen short *pRawData)
sbc_encode((sbc_t *)hEnc(UINT32* )&frameSizewrsbcRAW_frame_LENGTHRawData);
// RawDataRAW_frame_LENGTHwrsbc200&frameSize);
fwrite(wrsbcframeSize1fSBC);
SBC_Fram_leng = frameSize ;
encfram ++ ;
encdaleng -= RAW_frame_LENGTH ;
printf(“.“);
}
}

printf(“\n“);
if(fInput != NULL)
{
fclose(fInput);
printf(“SBC Encode succeed !\n“);
}
if(fSBC != NULL)
{
fclose(fSBC);
}

//------------------------------------------------------
// decod

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      20752  2008-12-16 14:35  sbc_vc\2K10s.pk

     文件    1764044  2008-12-10 15:20  sbc_vc\2K10s.wav

     文件      43819  2009-01-07 10:20  sbc_vc\bak\sbc.cpp

     文件      16969  2009-01-07 10:20  sbc_vc\bak\sbc_tables.h

     文件      17606  2009-01-06 10:45  sbc_vc\Debug\main.obj

     文件      11166  2009-01-06 10:45  sbc_vc\Debug\main.sbr

     文件      57742  2009-01-07 10:47  sbc_vc\Debug\sbc.obj

     文件      38932  2009-01-07 10:47  sbc_vc\Debug\sbc.sbr

     文件     156672  2008-12-22 10:45  sbc_vc\Debug\sbcprj.bsc

     文件     233529  2009-01-07 10:47  sbc_vc\Debug\sbcprj.exe

     文件     278440  2009-01-07 10:47  sbc_vc\Debug\sbcprj.ilk

     文件     255876  2009-01-07 10:03  sbc_vc\Debug\sbcprj.pch

     文件     541696  2009-01-07 10:47  sbc_vc\Debug\sbcprj.pdb

     文件      50176  2009-01-07 10:47  sbc_vc\Debug\vc60.idb

     文件      53248  2009-01-07 10:47  sbc_vc\Debug\vc60.pdb

     文件       8104  2009-01-06 10:41  sbc_vc\main.cpp

     文件        146  2008-12-18 15:26  sbc_vc\main.d

     文件        400  2008-12-22 16:48  sbc_vc\main.h

     文件      20488  2009-01-07 10:47  sbc_vc\Output.pk

     文件      17620  2009-01-06 10:45  sbc_vc\s.pk

     文件    1496504  2008-12-16 15:40  sbc_vc\s.wav

     文件     227994  2009-01-07 10:47  sbc_vc\SBC.bin

     文件      48517  2009-01-07 10:46  sbc_vc\sbc.cpp

     文件      49650  2008-12-22 16:34  sbc_vc\sbc.cppbak

     文件        182  2008-12-18 15:22  sbc_vc\sbc.d

     文件       2618  2008-08-02 13:44  sbc_vc\sbc.h

     文件       4644  2008-07-25 19:37  sbc_vc\sbcprj.dsp

     文件        535  2008-07-25 15:47  sbc_vc\sbcprj.dsw

     文件      91136  2009-01-07 12:14  sbc_vc\sbcprj.ncb

     文件      55808  2009-01-07 12:14  sbc_vc\sbcprj.opt

............此处省略14个文件信息

评论

共有 条评论