📄 g726pcmtrans.txt
字号:
/*****************************************************************************
FILE ........... PCMTRANS.H
FUNCTION ....... Header file for Telewind - PCMTRANS API
VERSION ........ 1.20
*****************************************************************************/
函数说明
错误返回
#define E_OPENFILE -1 文件打不开
#define E_CHANNEL -2 错误的通道号
#define E_FILEPOS -3 文件指针错
#define E_PCMRATE -4 压缩率错误
#define E_READ -5 读文件错
#define E_WRITE -6 写文件错
#define E_ALLOCMEM -7 内存分配错误
#define E_256BYTE -8 缓冲区长度有误不是256的整数倍
int WINAPI Pcm2Adpcm(char *pcm,char *adpcm,int pcmrate);
----------------------------------------------------------
功能:将PCM格式文件转换为ADPCM格式文件
参数:1 PCM格式文件名称
2 ADPCM格式文件名称
3 压缩率 0 8K/S
1 4K/S
2 2K/S
返回:>0 成功
<0 参看失败原因
说明:可以将不压缩的A率PCM格式,即将8K/S的语音转换为 4K/S或2K/S的ADPCM格式文件
int WINAPI Adpcm2Pcm(char *adpcm, char *pcm,int pcmrate);
----------------------------------------------------------
功能:将ADPCM格式文件转换为PCM格式文件
参数:1 ADPCM格式文件名称
2 PCM格式文件名称
3 压缩率 0 8K/S
1 4K/S
2 2K/S
返回:>0 成功
<0 参看失败原因
说明:可以将压缩的A率PCM格式,即将4K/S或2K/S的ADPCM格式文件转换成8K/S的语音文件
long WINAPI StartPcm2Adpcm(int cno, char *pcm,char *adpcm,int pcmrate);
------------------------------------------------------------------------
功能:将PCM格式文件转换为ADPCM格式文件,
参数:1 PCM格式文件名称
2 ADPCM格式文件名称
3 压缩率 0 8K/S
1 4K/S
2 2K/S
返回:>0 成功
<0 参看失败原因
说明:可以将不压缩的A率PCM格式,即将8K/S的语音转换为 4K/S或2K/S的ADPCM格式文件
该函数是开始转换,以后还需调用继续转换函数Pcm2AdpcmRest。分通道可以多路
同时转换
long WINAPI Pcm2AdpcmRest(int cno);
--------------------------------------
功能:PCM格式文件转换为ADPCM格式文件,查询和继续还有多少字节没有转换完
参数:1 通道号
返回:>=0 成功 未转换完的字节数
<0 参看失败原因
说明:可以将不压缩的A率PCM格式,即将8K/S的语音转换为 4K/S或2K/S的ADPCM格式文件
long WINAPI StopPcm2Adpcm(int cno);
--------------------------------------
功能:停止转换
参数:1 通道号
返回:>0 成功 未转换完的字节数
<0 参看失败原因
说明:
long WINAPI StartAdpcm2Pcm(int cno,char *adpcm, char *pcm,int pcmrate);
----------------------------------------------------------
功能:将ADPCM格式文件转换为PCM格式文件
参数:1 ADPCM格式文件名称
2 PCM格式文件名称
3 压缩率 0 8K/S
1 4K/S
2 2K/S
返回:>0 成功
<0 参看失败原因
说明:可以将压缩的A率PCM格式,即将4K/S或2K/S的ADPCM格式文件转换成8K/S的语音文件
该函数是开始转换,以后还需调用继续转换函数Adpcm2PcmRest。分通道可以多路
同时转换
long WINAPI Adpcm2PcmRest(int cno);
--------------------------------------
功能:AdPCM格式文件转换为PCM格式文件,查询和继续还有多少字节没有转换完
参数:1 通道号
返回:>=0 成功 未转换完的字节数
<0 参看失败原因
long WINAPI StopAdpcm2Pcm(int cno);
--------------------------------------
功能:停止转换
参数:1 通道号
返回:>0 成功 未转换完的字节数
<0 参看失败原因
说明:
int WINAPI Pcm2Wav(char *pcmfile,char *wavfile,int pcmrate);
--------------------------------------
功能: 根据压缩率, 将PCM和ADPCM格式的文件转换为WAV格式
参数:1 PCM或ADPCM格式的语音文件名
2 WAV格式文件名
3 PCM或ADPCM文件对应的压缩率
返回:>0 成功
<0 参看失败原因
说明:
int WINAPI Tw2Wav(int,char *,char *); //tw2wav(WF_ALAW,TWFile.tw,Wave.wav)
-------------------------------------------------------------------------
功能: 将PCM和ADPCM格式的文件转换为WAV格式
参数:1 WF_ALAW=0, //8-bit A-Law Encoded Waveform: 8000Hz,16-bit,Mono
WF_PCM=5 //Windows PCM:8000Hz,16-bit,Mono
2 PCM格式文件名(只能是8K/S的语音)
3 WAV文件名,具体格式根据第一个参数决定
返回:1 成功
0 失败
说明:该函数和Pcm2Wav类似,但不能转换压缩的文件
int WINAPI Wav2Tw(char *,char *); //wav2tw(Wave.wav,TWFile.tw)
--------------------------------------
功能: 将WAV格式的文件转换为PCM格式
参数:1 WAV格式文件名
2 PCM格式文件名
返回:1 成功
0 失败
说明:
int WINAPI Adpcm2PcmBuf(int cno,unsigned char *adpcmbuf,unsigned char *pcmbuf,int len,int pcmrate);
-----------------------------------------------------------------------------------------
功能: 将ADPCM格式转换为PCM格式的缓冲区操作函数
参数:1 通道号
2 ADPCM格式的缓冲区,必须是256字节的整数倍
3 存放PCM格式的缓冲区,必须是256字节的整数倍,注意该缓冲区应该大于adpcmbuf
如: adpcmbuf是 1024*30 K,如果压缩比为1,那么pcmbuf为 1024*30*2
如果压缩比为2,那么pcmbuf为 1024*30*4
4 输入ADPCM格式的缓冲区的长度,必须是256字节的整数倍
5 ADPCM格式的压缩比 如:1(8k/s),2(4k/s)
返回:1 成功
<0 失败
说明:
int WINAPI Pcm2AdpcmBuf(int cno,unsigned char *pcmbuf,unsigned char *adpcmbuf,int len,int pcmrate);
--------------------------------------------------------------------------------------------
功能: 将PCM格式转换为ADPCM格式的缓冲区操作函数
参数:1 通道号
2 PCM格式的缓冲区,必须是256字节的整数倍
3 存放ADPCM格式的缓冲区,必须是256字节的整数倍,注意该缓冲区可以小于adpcmbuf
如: pcmbuf是 1024*30 K,如果压缩比为1,那么pcmbuf为 1024*30/2
如果压缩比为2,那么pcmbuf为 1024*30/4
4 输入PCM格式的缓冲区的长度,必须是256字节的整数倍
5 ADPCM格式的压缩比 如: 1 (8k/s), 2 (4k/s)
返回:1 成功
<0 失败
说明:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -