西天取经意义初探_show concern about

西天取经意义初探_show concern about构建DirectShow应用程序  本章节描述构建DirectShow应用程序所需的头文件和库。WindowsSDK中提供了最新的DirectShow头文件和库。头文件    所有的DirectShow应用程序都需要Dshow.h头文件,一些DirectShow接口可能还需要额外的头文件。库文件    调试版和发布版都是用相同的.lib文件。 F…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

构建DirectShow应用程序

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

头文件

   西天取经意义初探_show concern about

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

库文件

   西天取经意义初探_show concern about

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

 

Filter基类

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

可重复发布的DLL

   可发布的包包含如下DLL:

    西天取经意义初探_show concern about

     西天取经意义初探_show concern about

 

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。

西天取经意义初探_show concern about

    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应用程序都必须执行三项任务,如下图:

   西天取经意义初探_show concern about

   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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182744.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月12日 下午4:36
下一篇 2022年10月12日 下午4:46


相关推荐

  • 大数据技术综述

    大数据技术综述2019 独角兽企业重金招聘 Python 工程师标准 gt gt gt

    2026年3月18日
    2
  • 阿里千问Qen3.5-4B干翻GPT主力大模型:可本地部署、仅2%参数

    阿里千问Qen3.5-4B干翻GPT主力大模型:可本地部署、仅2%参数

    2026年3月16日
    2
  • linux修改密码策略

    linux修改密码策略对于用户账户的管理是系统管理员最重要的工作之一。尤其是,对于任何自称安全的linux系统,最受关心的应该是密码安全问题。在本教程中,我将介绍如何在linux上设置严密的密码策略。我假设你的linux系统是最近的linux发行版,那么你正在使用的应该是PAM(可插拔认证模块)。**1.准备**安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。在Debin,Ubuntu或者LinuxMint使用命令:sudoapt-getinstalllibpam-crackli

    2025年9月20日
    9
  • CGLIB介绍与原理「建议收藏」

    CGLIB介绍与原理「建议收藏」CGLIB介绍与原理(部分节选自网络)一、什么是CGLIB?CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接口或者为了更好的性能,CGLIB是一个好的选择。二、CGLIB原理CGLIB原理:动态生成一个要代理类的子类,子类重写要代理的类的所有不是final

    2022年6月4日
    54
  • 未来计算机硬件发展趋势是什么,未来计算机硬件发展趋势

    未来计算机硬件发展趋势是什么,未来计算机硬件发展趋势未来计算机硬件发展趋势自从 1946 年著名电脑 ENIAC 以来 电脑硬件一直在高速发展 CPU 频率从最早的 12MHz 当后来 586 电脑使用的 166MHz 奔腾处理器 到现在的 3GHz 20 年间 CPU 频率增长了 250 倍 著名的摩尔定律指出 电脑芯片没 18 个月晶体管数量提升一倍 而价格将降低一倍 相信大部分玩家在两年之前都没有想到可以用上 6 核心的处理器 可以用电脑玩 3D 立体游戏 那么未来的电脑硬件会是什么

    2026年3月18日
    2
  • Spring Cloud版本说明

    Spring Cloud版本说明SpringCloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号。SpringCloud通过一个资源清单BOM(BillofMaterials)来管理每个版本的子项目清单。为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。这些版本名称的命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如…

    2022年6月7日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号