DirectShow - 调用IAMStreamConfig :: SetFormat和ICaptureGraphBuilder2 :: RenderStream的顺序会在某些摄像机中产生问题

时间:2012-03-23 06:15:36

标签: directshow

我必须在捕获和处理数据之前配置我的摄像机显示分辨率。最初我做了如下。

  1. 创建了所有必要的接口。

  2. 添加了相机和渲染器过滤器

  3. RenderStream是否具有捕获和预览PIN类别。

  4. 然后通过AM_MEDIA_TYPE结构循环并设置参数。

  5. 这适用于很多相机,但有些相机失败了。然后我改变了上面给出的3和4的顺序。也就是说,我在RenderStream之前设置了params。这一次,错误案例已经通过,但SONY VAIO笔记本电脑等的一些车载相机似乎失败了。

    现在,我的问题是

    1. 获取和设置AM_MEDIA_TYPE参数并运行图表的最佳和正确方法是什么?

    2. 如果有不同的相机,如果我通过相机的DirectShow界面获得特定相机的最佳订单,那么这也符合我的目的。

    3. 请尽早帮助我,

      谢谢和问候,

      石咀

1 个答案:

答案 0 :(得分:3)

在连接和渲染引脚之前,需要使用

IAMStreamConfig::SetFormat来设置捕获格式。这样,过滤器的下游子链就可以使用适当的媒体类型构建。