資源簡介
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個文件信息
評論
共有 條評論