构建DirectShow应用程序

本章节描述构建DirectShow应用程序所需的头文件和库。Windows SDK中提供了最新的DirectShow头文件和库。

头文件

所有的DirectShow应用程序都需要Dshow.h头文件,一些DirectShow接口可能还需要额外的头文件。

库文件

调试版和发布版都是用相同的.lib文件。

Filter基类

Windows SDK为自定义DirectShow Filter提供了一组C++类。这些类是作为示例代码提供的,你也可以将它们编译成静态库。

可重复发布的DLL

可发布的包包含如下DLL:

DirectShow应用程序编程简介

Filters and Filter Graphs

DirectShow的构建块是一个称为Filter的软件组件。 Filter是对多媒体流执行一些操作的软件组件。例如,DirectShow Filter有如下功能:

·读文件

·从视频捕捉设备获取视频

·解码各种流格式,例如MPEG-1视频

·将数据传递给图形或声卡

Filter接收输入并产生输出。例如,如果Filter解码MPEG-1视频,则输入是MPEG编码流,输出是一系列未压缩的视频帧。在DirectShow中,应用程序通过将Filter链连接在一起执行任何任务,以便一个Filter的输出成为另一个Filter的输入。 一组连接的Filter称为Filter Graph。 例如,下图显示了播放AVI文件的Filter Graph。

File Source Filter从硬盘读取AVI文件。AVI Spliter Filter将文件解析为两个流,即压缩视频流和音频流。 AVI解压缩器Filter解码视频帧。 Video Renderer Filter使用DirectDraw或GDI将帧绘制到显示器。默认的DirectSound设备Filter使用DirectSound播放音频流。

应用程序不必管理所有这些数据流。 相反,这些Filter由名为Filter Graph Manager的高级组件控制。 应用程序进行高级API调用,如“运行”(通过图形移动数据)或“停止”(以停止数据流)。 如果您需要对流操作进行更多控制,则可以通过COM接口直接访问 Filter。 Filter Graph Manager还将事件通知传递给应用程序。

Filter Graph Manager还提供了另一个用途:它通过将Filter连接在一起,为应用程序提供构建Filter Graph的方法。

编写DirectShow应用程序

广义而言,任何DirectShow应用程序都必须执行三项任务,如下图:

1.该应用程序创建一个Filter Graph Manager的实例

2.应用程序使用Filter Graph Manager来构建过滤器图。

3.应用程序使用Filter Graph Manager通过Filter控制Filter Graph和流数据。 在整个过程中,应用程序还会响应Filter Graph Manager中的事件。.

处理完成后,应用程序将释放Filter Graph Manager和所有Filter。DirectShow基于COM; Filter Graph Manager和过滤器都是COM对象。 在开始编程DirectShow之前,您应该对COM客户端编程有一个大体的了解

参考:

https://www.yuque.com/docs/share/d9f1e535-6143-4f76-be77-c001d1e32b95

初探DirectShow相关推荐

  1. DirectShow使用大全

    一.使用directshow时应该添加lib文件Strmiids.lib.Quartz.lib .Strmbase.lib 具体添加那个见下面的说明 Header Files All DirectSh ...

  2. 2021年大数据Flink(九):Flink原理初探

    Flink原理初探 Flink角色分工 在实际生产中,Flink 都是以集群在运行,在运行的过程中包含了两类进程. JobManager: 它扮演的是集群管理者的角色,负责调度任务.协调 checkp ...

  3. 从壹开始微服务 [ DDD ] 之一 ║ D3模式设计初探 与 我的计划书

    缘起 哈喽大家周四好!又是开心的一天,时间过的真快,我们的 <从壹开始 .net core 2.1 + vue 2.5 >前后端分离系列共 34 篇已经完结了,当然以后肯定还会有更新和修改 ...

  4. 经典算法研究系列:二、Dijkstra 算法初探

    经典算法研究系列:二.Dijkstra 算法初探  July   二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...

  5. Windows SDK 7.1 (包含directshow)安装配置

    最近一直在做毕业设计的事情,需要利用directshow进行视频开发,但是现在单独的directshow包已经没有了,从directx9.0c开始directshow和directx分开发布,现在的d ...

  6. las格式测井曲线_邹榕,等:顺北和托甫台区块奥陶系断裂结构单元测井响应特征初探...

    引用格式:邹榕,徐中祥,张晓明,等.顺北和托甫台区块奥陶系断裂结构单测井响应特征初探[J].油气藏评价与开发,2020,10(2):18-23.ZOUR, XU Z X, ZHANG X M, et ...

  7. 2018-4-15摘录笔记,《网络表征学习前沿与实践》 崔鹏以及《网络表征学习中的基本问题初探》 王啸 崔鹏 朱文武

    1.来源:<网络表征学习前沿与实践>  崔鹏 (1)随着数据的增加以及计算机计算速度的增加,想当然的以为速度快了,数据再多也是可以自己算的,但是若是数据之间存在着复杂的关系,那么处理一个样 ...

  8. python argparse_Python 命令行之旅:初探 argparse

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 你是否好奇过在命令行中敲入一段命令后,它是如何被解析执行的?是否考虑过由自己实现一个命令行工具,帮你执行和处理任 ...

  9. HTML5+MUI+HBuilder 之初探情人

    07,08年那会儿正当Java火爆,C/C++仍是广泛运用的一门语言的时候,所以我的大学都献给了C/C++和Java.当诺基亚的倒闭成为按键机时代衰落的标志时,移动APP的开发也如破堤之洪.爆炸式的崛 ...

最新文章

  1. 颈椎病,大部分IT人的痛
  2. 图像滤镜艺术---图像滤镜晕影调节算法研究
  3. python导入模块时的路径疑惑
  4. 云计算之路:数据库迁移方案
  5. UVa 1531 - Problem Bee
  6. C# 跨平台的支付类库ICanPay
  7. python操作excel命令_python excel操作总结
  8. 服务器 '' 上的 MSDTC 不可用。
  9. 基于R语言分析决策树和随机森林(1)
  10. L2TP设置-如果更改了公网IP,需要更改哪些东西?
  11. 金融产业数据治理实践及方法论
  12. windows 打印机管理机制(任务后台等待机制)
  13. 河南省软考报名时间成绩查询河南省教育考试院河南省人事考试网报名入口
  14. Linux命令·df·du
  15. Regression 2
  16. 关于Spring5.3之后StringUtils.isEmpty被弃用
  17. sql server 数字转大写
  18. SpringBoot实现文件上传
  19. 中控指纹考勤机使用实战
  20. 立体图像和平面图像质量评价常用数据库

热门文章

  1. 经纬度批量转地址(保姆级教程)
  2. 林肯公园(LINKIN PARK)上海演唱会观众座位表(转帖)
  3. Python爬虫笔记————抓取 猫眼电影排行榜Top100
  4. 减库存怎么处理 java_java减库存
  5. JSON数据导出Excel表
  6. Cocos Creator 安卓复制功能
  7. 如何使用Tenderly在Moonbeam上构建更优秀的Dapp
  8. Struts 2 studing
  9. 计算机怎么解除c盘用户权限,电脑c盘文件夹拒绝访问怎么办 删除c盘文件如何获得管理员权限...
  10. Mac Book触摸板失灵的解决办法(触摸板按下失灵)