大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
构建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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182744.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...