资源简介
是著名外企公司sun的源代码,包含 g721 g711 g729 g723 g722 音频编码解码及实例分析c代码
代码片段和文件信息
/*
* decode.c
*
* CCITT ADPCM decoder
*
* Usage : decode [-3|4|5] [-a|u|l] < infile > outfile
*/
#include
#include “g72x.h“
/*
* Unpack input codes and pass them back as bytes.
* Returns 1 if there is residual input returns -1 if eof else returns 0.
*/
int
unpack_input(
unsigned char *code
int bits)
{
static unsigned int in_buffer = 0;
static int in_bits = 0;
unsigned char in_byte;
if (in_bits < bits) {
if (fread(&in_byte sizeof (char) 1 stdin) != 1) {
*code = 0;
return (-1);
}
in_buffer |= (in_byte << in_bits);
in_bits += 8;
}
*code = in_buffer & ((1 << bits) - 1);
in_buffer >>= bits;
in_bits -= bits;
return (in_bits > 0);
}
main(
int argc
char **argv)
{
short sample;
unsigned char code;
int n;
struct g72x_state state;
int out_coding;
int out_size;
int (*dec_routine)();
int dec_bits;
g72x_init_state(&state);
out_coding = AUDIO_ENCODING_ULAW;
out_size = sizeof (char);
dec_routine = g721_decoder;
dec_bits = 4;
/* Process encoding argument if any */
while ((argc > 1) && (argv[1][0] == ‘-‘)) {
switch (argv[1][1]) {
case ‘3‘:
dec_routine = g723_24_decoder;
dec_bits = 3;
break;
case ‘4‘:
dec_routine = g721_decoder;
dec_bits = 4;
break;
case ‘5‘:
dec_routine = g723_40_decoder;
dec_bits = 5;
break;
case ‘u‘:
out_coding = AUDIO_ENCODING_ULAW;
out_size = sizeof (char);
break;
case ‘a‘:
out_coding = AUDIO_ENCODING_ALAW;
out_size = sizeof (char);
break;
case ‘l‘:
out_coding = AUDIO_ENCODING_LINEAR;
out_size = sizeof (short);
break;
default:
fprintf(stderr “CCITT ADPCM Decoder -- usage:\n“);
fprintf(stderr “\tdecode [-3|4|5] [-a|u|l] < infile > outfile\n“);
fprintf(stderr “where:\n“);
fprintf(stderr “\t-3\tProcess G.723 24kbps (3-bit) input data\n“);
fprintf(stderr “\t-4\tProcess G.721 32kbps (4-bit) input data [default]\n“);
fprintf(stderr “\t-5\tProcess G.723 40kbps (5-bit) input data\n“);
fprintf(stderr “\t-a\tGenerate 8-bit A-law data\n“);
fprintf(stderr “\t-u\tGenerate 8-bit u-law data [default]\n“);
fprintf(stderr “\t-l\tGenerate 16-bit linear PCM data\n“);
exit(1);
}
argc--;
argv++;
}
/* Read and unpack input codes and process them */
while (unpack_input(&code dec_bits) >= 0) {
sample = (*dec_routine)(code out_coding &state);
if (out_size == 2) {
fwrite(&sample out_size 1 stdout);
} else {
code = (unsigned char)sample;
fwrite(&code out_size 1 stdout);
}
}
fclose(stdout);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5707 1992-09-01 06:09 g723_40.c
文件 603 1992-09-01 06:09 Makefile
文件 3311 1992-09-01 06:09 README
文件 2640 1992-09-01 06:09 decode.c
文件 2866 1992-09-01 06:09 encode.c
文件 14948 1992-09-01 06:09 g72x.c
文件 3438 1992-09-01 06:09 g72x.h
文件 7804 1992-09-01 06:09 g711.c
文件 5430 1992-09-01 06:09 g721.c
文件 4795 1992-09-01 06:09 g723_24.c
文件 229 2007-09-18 11:49 www.mp4tech.net便携式多媒体技术中心.txt
----------- --------- ---------- ----- ----
51771 11
- 上一篇:适合word练习的素材
- 下一篇:南昌大学计算机操作系统期末试卷
相关资源
- 音频测试文件pcmmp3aacamrg711ag711u等多种
- G726、G711、G711A转换为AAC
- MicroSIP 增加 g729 源代码
- delphi7实现的网络音频压缩传输播放程
- pcm-g711a-采集器-播放器 源代码
- g711g726adpcm编解码,有demo和声音文件,
- g711音频文件测试用
- aac+h264封装MP4
- G711播放代码
- G729最新源码
- G711.alaw文件
- G711编码原理ppt
- G711播放器
- pcm-g711a-采集器-播放器
- 海思g711a格式音频生成工具
- ITU-T g729原版源代码
- 74HC595和ZLG7290中文资料
- G.729AG729A编解码库va_g729a
- Pjsip加入G729编码的资源
- 基于H5的实时语音流播放
- Qt实现基于G.729AG729A的语音聊天
- 内存G711A解码PCM.rar
- G729编解码原理及源码.rar
评论
共有 条评论