请问directshow的一个问题!

cx820402 2009-04-16 08:04:01
请问:
if (m_rType == Type_AVI)
{
hr = m_pCGraphBuilder2->ControlStream(&PIN_CATEGORY_CAPTURE, NULL,NULL, &start, NULL, 0, 0);
bhasStream = SUCCEEDED(hr);
}

GOTO_IF_FAILED( m_pControl->Run() );

if (m_rType == Type_AVI && bhasStream)
{
hr = m_pCGraphBuilder2->ControlStream(&PIN_CATEGORY_CAPTURE, NULL,NULL, NULL, &stop, 0, 0);
}

这样的话,捕捉视频的时候,声音和图像会有不同步的情况,但是我做如下修改,就不会有声音和图像不同步的问题:
if (m_rType == Type_AVI)
{
hr = m_pCGraphBuilder2->ControlStream(&PIN_CATEGORY_CAPTURE, NULL,NULL, &start, NULL, 0, 0);
bhasStream = SUCCEEDED(hr);
}

GOTO_IF_FAILED( m_pControl->Run() );
Sleep(2000); // 也就是在这里sleep 2秒,就不会声音图像不同步问题
if (m_rType == Type_AVI && bhasStream)
{
hr = m_pCGraphBuilder2->ControlStream(&PIN_CATEGORY_CAPTURE, NULL,NULL, NULL, &stop, 0, 0);
}

请问这是怎么回事?
...全文
39 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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