关于 g729a 实时编码

abolo 2008-12-09 11:22:15
http://topic.csdn.net/u/20081202/17/7cd20c83-ba9f-4636-8a78-acf45ca427b4.html

好不容易找到了 g729a 的编解码器

目前音频部分的采集已经完成,测试成功

现在想利用DirectShow的Samples中的NullNull对语音进行实时编码

HRESULT AAA::Transform(IMediaSample *pSample)
{
long *ptr_long = new long;

HRESULT hr;

*ptr_long = pSample->GetActualDataLength();

BYTE *bitstream;

hr = pSample->GetPointer(&bitstream);

if(FAILED(hr))

return hr;

short *speech = reinterpret_cast<short*>(ptr_long);

MessageBox(NULL, "Encoder", "beforeReceive", MB_OK);

va_g729a_encoder(speech, bitstream);//bitstream pointer pass what bitstream points to

MessageBox(NULL, "Encoder", "Receive", MB_OK);

pSample->GetPointer(&bitstream);

return NOERROR;
}

但运行一段时间后,程序就出错了.

"Test.exe 中的 0x0043a556 处未处理的异常: 0xC0000005: 读取位置 0x01a56000 时发生访问冲突 。"

代码停在va_g729a_encoder(speech, bitstream);上

==============
如果能提供测试例子,非常感谢,邮箱是qq80436683@yahoo.com.cn
...全文
155 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
UDX协议 2008-12-20
  • 打赏
  • 举报
回复
如果是一个程序中有多个引用这个lib的实例的话,很可能是这个lib不支持多个实例。

解决办法是用其他的编解码器。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧