码迷,mamicode.com
首页 > 其他好文 > 详细

常见多媒体开发框架对比分析(一)DirectShow

时间:2015-07-04 11:12:29      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

  DirectShow是资格最老的多媒体开发框架之一,20多年前就有了,非常经典,即便到了现在,在Windows多媒体领域仍然是不可替代的。虽然不开源,但有详细的说明文档和开发指南,微软的DirectShow SDK中附有大量的示例代码和基础类库,是很好的学习资源。如果你是多媒体开发领域的新手,不管你基于哪个平台开发,我都建议你学一学DirectShow,它可以告诉你多媒体框架究竟是个什么样子。

  DirectShow实践了经典的“管道和过滤器(Pipes and Filters)”设计模式,这是多媒体领域最重要的设计模式,有了它,就能把复杂的多媒体处理任务分解成一个个独立的小模块,解决起来就不那么复杂了。DirectShow中的很多概念、设计、处理方法都很有创新精神和参考价值,值得学习。后来的很多多媒体框架都从DirectShow中或多或少的吸取了营养。

  说了DirectShow的优点,但其实存在的问题同样很多。

  一是不开源,只能运行在Windows系统,微软的东西,这个就不多说了。

  二是组件化的开发和部署模式,这个是优点也是缺点。优点是支持跨多个应用的功能集成与复用,当然这主要是通过更底层的COM架构实现的;缺点是应用的发布和配置比较复杂,对运行环境依赖程度大。

  三是开发负担太重。其实COM这样的架构最适合的场景是操作系统DIY,如果应用程序不想扩展操作系统功能,也不想被其他应用程序调用,那COM对它来说完全就是负担。应用中的每个模块都要实现COM规定的接口(如组件注册、引用计数、接口查询等)和DirectShow规定的必须实现的功能(如格式注册、Pin的枚举和连接、内存管理等)。虽然DirectShow SDK已经提供了很多基础类库来实现这些例行功能,但仍然让人不胜其烦,难以把精力集中到应用程序自身的逻辑。

 

常见多媒体开发框架对比分析(一)DirectShow

标签:

原文地址:http://www.cnblogs.com/directmedia/p/4620289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!