当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 智慧的鱼(aoosang)
 

 

    摘要:l 设备场景(cdc类)有画图的需要,就需要设备场景,哪怕细微的显示字体.cdc子下设备:cclientdc、cmetafiledc、cpaintdc、cwindowdc。它们都颇占资源,用完记得删除之。l 画笔类(cpen)设备场景就好象”画布”,我们现在还需要一支”画笔”.好像cpen 、 cbrush 、cfont 、cbitmap 我地叫他们......
    摘要:开发者网络 > 开发工具 > 开发专栏 > vc > 正文  控件在visual c++编程学习中占据很重要的位置。笔者在国外英文网站上看到了这篇关于日历控件学习的文章,虽然内容看似简单,但读完后感觉到还是学到了一些东西。感觉到原著作者对一些不常用的日历控制的使用方法写的介绍的很详细,通俗易懂,于平淡之中显神奇,是对日历控件的"深度挖掘",对vc的初学者......


DirectShow中 Filter Graph及其组成
智慧的鱼(aoosang)

  【程序编程相关:Visual C++ ADO数据库编程入

摘要:本篇文档概括性的介绍了directshow的主要组成部分,以及一些directshow的基本概念.熟悉这些基本的知识对于directshow的应用开发或者过滤器的开发者都会有所帮助. 【推荐阅读:Visual C++ ADO数据库编程入

【扩展信息:微软C/C++ 编译器选项

   directshow是微软公司提供的一套在windows平台上进行流媒体处理的开发包,与directx开发包一起发布.那么,directshow能够做些什么呢?且看,directshow为多媒体流的捕捉与回放提供了强有力的支持.运用directshow,我们可以很方便地从支持wdm驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中.它广泛地支持各种媒体格式,包括asf.mpeg.avi.dv.mp3.wave等等,使得多媒体数据的回放变得轻而易举.另外,directshow还集成了directx其它部分(比如directdraw.directsound)的技术,直接支持dvd的播放,视频的非线性编辑,以及与数字摄像机的数据交换.更值得一提的是,directshow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件.

应用程序与directshow组件以及directshow所支持的软硬件之间的关系如图1所示.

                    图1 directshow系统框图

1 directshow的 filter

  directshow是基于模块化,每个功能模块都采取com组件方式,称为filter.directshow提供了一系列的标准的模块可用于应用开发,开发者也可以开发自己的功能filter来扩展directshow的应用.下面我们用一个例子来说明如何采取filter来播放一个avi的视频文件.

 1 首先从一个文件中读取avi数据,形成字节流.(这个工作由源filter完成)

2 检查avi数据流的头格式,然后通过avi分割filter将视频流与音频流分开.

 3解码视频流,根据压缩格式的不同,选取不同的decoder filters .

4通过renderer filter重画视频图像.

 5将音频流送到声卡进行播放,一般采用缺省的 directsound device filter.流程见下图.

从上面的图表看,每一个filter都一个其他的一个或者两个filter相连接.两个filter相连接的连接点也是com对象,我们称为pin.filter通过pin将数据从一个filter传递到另一个filter中,从而可以使数据在由filter组成的链表中流动.图中的箭头表示filter链表中的数据流的方向.在directshow中,像上面的这样一个filter 链表我们称为filter graph.

   filter具有三个状态,运行,停止,暂停.当一个filter运行时,它就处理媒体数据流,当停止时,filter就不在处理数据,暂停状态常用来给运行状态之前cure data.data flow in the filter graph一章详细描述了这些概念,可以参考.

   除了一些特别的例外, filter graph中所有的filter的状态的改变都是统一的,也就说,filte graph中的所有的filter 的状态改变是一致协调的.
...   下一页
 ·c++/cli语言的属性探索     »显示摘要«
    摘要:软件 > 开发者网络 > 微软开发专栏 > visual studio.net专栏 > vc.net > 正文  本文展示了欧洲计算机开发商协会正在发展的c++/cli(一种不同的c++语言,它方便开发人员在微软的.net框架下更容易地开发程序)语言在c++语言上的扩展。写这篇文章的目的并不是要建议标准c++包括这部分扩展,也不是对c++/cli的认可,而只是在探讨c......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE