dshow中一个完整采集链路一般如下:

Capture Device----->SampleGraber ------>Render

如果只要采集原始数据可以不用渲染链路那就如下:

Capture Device----->SampleGraber ------>Null Render

在很多dshow的demo中遇到过很多关于设置窗体的步骤,也就是标题 IVideoWindow 的设置。

以前没太注意过这个设置,看到别人的demo里有这个设置也就加上了,代码如下:

if (FAILED(graph_->QueryInterface(IID_IVideoWindow, (void **)&active_video_window_)))
{
return -;
} if (active_video_window_)
{
if (FAILED(active_video_window_->put_AutoShow(OAFALSE)))
{
return -;
}

上面的代码作用是吧渲染窗体隐藏,如果不隐藏的话,在连接整个链路运行的时候会自动弹出一个渲染窗体(如果上面的链路有Render filter)

后来对这一块代码仔细研究了一下发现如果我只是单纯的采集摄像头原始数据的话也就不需要设置隐藏窗体这一步骤了

所以后来就把这一块代码注释了。

再后来再一次测试使用 graph_->Render 智能连接的时候出现了问题。

使用graph_->Render 的话就需要吧上面的 NULL Render 废弃掉 链路如下:

Capture Device----->SampleGraber -----graph_->Render---->?

让Graph 去智能连接下面的链路的话,智能连接一般不会去给你连接一个Null Render 因为它不知道你是否想预览数据。

一般情况下使用filter 的智能连接 是不太透明的,在程序当中尽量避免使用智能连接,当然这种情况也有例外的情况比如:

virtual HRESULT STDMETHODCALLTYPE RenderStream(
/* [annotation][in] */
_In_opt_ const GUID *pCategory,
/* [in] */ const GUID *pType,
/* [in] */ IUnknown *pSource,
/* [in] */ IBaseFilter *pfCompressor,
/* [in] */ IBaseFilter *pfRenderer) = ;

RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, A, B,C);

其中A,B,C 不为NULL 链路:----A------------B---------------------C----

如果上面这种指定filter的智能连接是可以使用的,因为目标比较明确,而且还省略了去获取IPin 的步骤让Graph 去自动帮你选择。

------------------------------------------

继续说上面的graph_->Render 这种用法如果使用了很大可能在闭合链路的时候graph 给你连接的链路如下:

Capture Device----->SampleGraber ------>Render

而这个时候就需要 标题 IVideoWindow 的设置,如果不设置的话,在run之后会自动弹出预览窗口(因为闭合链路的时候graph 连接的是一个 Render Filter )

从这个现象也就能明白 IVideoWindow 作用了。

总结有点乱,大致意思就是如果你使用的智能连接链路 那就需要注意一下 IVideoWindow

参考:https://docs.microsoft.com/zh-cn/windows/desktop/DirectShow/combining-video-capture-and-preview

IVideoWindow 在directshow采集链路中的使用的更多相关文章

  1. 关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量

      关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量 emesjx | 2014-08-13 13:13:30    阅读:1793   发布文章 当一个系统中含有多片(2片以上)Xil ...

  2. filebeat + logstash 日志采集链路配置

    1. 概述 一个完整的采集链路的流程如下: 所以要进行采集链路的部署需要以下几个步聚: nginx的配置 filebeat部署 logstash部署 kafka部署 kudu部署 下面将详细说明各个部 ...

  3. 采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET

    采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET undefined

  4. 带你看懂大数据采集引擎之Flume&采集目录中的日志

    一.Flume的介绍: Flume由Cloudera公司开发,是一种提供高可用.高可靠.分布式海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于采集数据:同时,flum ...

  5. Directshow 采集音视频数据H264+AAC+rtmp效果还不错

    从usb摄像头或者采集卡中采集效果还是不错的.

  6. linux底半部机制在视频采集驱动中的应用

    最近在做一个arm+linux平台的视频驱动.本来这个驱动应该是做板子的第三方提供的,结果对方软件实力很差,自己做不了这个东西,外包给了一个暑期兼职的在读博士.学生嘛,只做过实验,没做过产品,给出的东 ...

  7. iOS音频采集过程中的音效实现

    1.背景 在移动直播中, 声音是主播和观众互动的重要途径之一, 为了丰富直播的内容,大家都会想要在声音上做一些文章, 在采集录音的基础上玩一些花样. 比如演唱类的直播间中, 主播伴随着背景音乐演唱. ...

  8. Directshow 采集与FFDshow 冲突

    在使用Directshow 进行视频采集的时候,发现与本地安装的一个ffdshow有冲突. 见下图: 经过测试发现dshow 在设置采集媒体类型的时候,如果设置RGB32就会崩溃,如果设置RGB24就 ...

  9. php采集文章中的图片获取替换到本地

    /** * 获取替换文章中的图片路径 * @param string $xstr 内容 * @param string $keyword 创建照片的文件名 * @param string $oriwe ...

随机推荐

  1. Linux下命令行cURL的10种常见用法示例

    curl的命令行工具功能非常强大,这些数据交互的功能基本上都是通过URL方式进行的,下面这篇文章主要给大家分享了在Linux中命令行cURL的10种常见用法示例,通过示例代码介绍的非常详细,需要的朋友 ...

  2. 剑指Offer 31. 整数中1出现的次数(从1到n整数中1出现的次数) (其他)

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  3. 2019微软Power BI 每月功能更新系列——2月Power BI 新功能学习

    哈喽,小伙伴们,我是小悦悦,好久不见~ 春节假期结束,新一轮的工作开始,祝大家猪年如意,开工大吉! 今天小悦悦带你走入猪年学习的正确打开方式——Power BI新一年的持续更新学习!   Power ...

  4. 对Enum的认识

    1.如何把枚举值取出来作为数据源:     public enum AuditState     {         未审核 = 1,         审核通过=2,         审核未通过=3, ...

  5. jQuery-1.样式篇---属性与样式

    jQuery的属性与样式之.attr()与.removeAttr() 每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息.如:在img元素中,src就是元素的特性,用来标 ...

  6. iOS开发 SVN回退到某一个版本

    1.选择你要恢复的工程,(注意:从SVN上checkout下来的工程不要改变,移动位置) 2.找到SVN的导航栏,点击“Working Copy”--->"Revert" 3 ...

  7. ID3-C45-CART

    区别:使用不同的属性选择度量. 信息增益偏向多值属性 信息增益率倾向产生不平衡的划分 基尼指数偏向多值属性,并且当类的数量很大时会有困难,还倾向于导致相等大小的分区和纯度 C4.5: 优点:产生的分类 ...

  8. Arch Linux pacman 与其他发行版操作比较

    原文:https://wiki.archlinux.org/index.php/Pacman/Rosettahttps://old-en.opensuse.org/Software_Managemen ...

  9. CVE-2017-12615和CVE-2017-12616

    Tomcat代码执行漏洞分析测试 1. 漏洞花絮        2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-20 ...

  10. 网络之 Iptables总结

    查询iptables -L 默认 filter表iptables -L -t filteriptables -L -t natiptables -L -t mangle Filter表service ...