首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IMediaControl::Run,然后是IMediaControl::Stop,然后是IMeidaControl::Run不会打开某些板载摄像头

IMediaControl::Run,然后是IMediaControl::Stop,然后是IMeidaControl::Run不会打开某些板载摄像头
EN

Stack Overflow用户
提问于 2012-05-22 18:53:27
回答 2查看 644关注 0票数 0

我有一个DirectShow摄像头应用程序。我使用示例抓取器来获取buffer回调,并使用IVideoWindow来控制预览的显示坐标。我有预览和捕获流,我运行如下。

g_pBuild->RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,cam,g_pGrabberF,pNullRenderer2);g_pBuild->RenderStream(&PIN_CATEGORY_PREVIEW,&MEDIATYPE_Video,cam,NULL,NULL);

在某些板载相机上,IMediaControl::Run,然后是IMediaControl::Stop,然后是IMediaCOntrol::Run,不会打开相机。

扩展USB摄像头在这里可以正常工作。如何诊断更多有关此问题的信息?任何建议,请帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-05-22 22:41:33

也许它特定于单元中的某个硬件问题。通过在两次调用之间添加1秒的睡眠来进行快速测试。如果它确实有帮助,那么您需要找到一种方法来知道单元状态何时处于空闲或非空闲。

票数 1
EN

Stack Overflow用户

发布于 2012-05-22 21:11:54

你没有提供问题的两个重要部分:

  1. 过滤器图方法的topologies
  2. HRESULTs调用

您可能会遇到的一个问题是,拓扑中的一个筛选器不能很好地处理状态转换,并且在状态之间的某处失败。假设你的第二个Run遇到了它,它仍然在尝试完成Stop。你可能会在那里得到一个指示问题的HRESULT (对你来说更好),或者过滤器会静默地失败。

过滤器图的不太可能是bug本身的来源。它做每件事都完美无缺的可能性很高,然而,由于在内部它在过滤器之间分配调用,其中一个过滤器让你失望了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10700592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档