
DirectShow
文章平均质量分 71
mapper
这个作者很懒,什么都没留下…
展开
-
使用VMR9采集n个视频的一帧到一张位图
近来看DirectX 9.0文档,越来越觉得它功能的强大。结合目前解决的一个问题: 即采集多个视频源的一帧到一张位图。它需要用到DirectX中的VMR。 VMR是新一代的video renderer,全称为Video Mixing Renderer,它分为VMR7和VMR9,VMR7基于DirectDraw7,只限于Windows XP;VMR9基于Direct3D9。因为我的例子可能会用于原创 2008-01-31 11:54:00 · 5338 阅读 · 2 评论 -
编写DirectShow Filters—DirectShow and COM
seeker一、 如何实现IUnknown Microsoft DirectShow基于组件对象模型(COM)。如果你编写自定义filter,你必须把它作为一个COM对象来实现。DirectShow基类提供一个实现此对象的框架。不过使用基类不是必须的,但它能简化开发进度。这篇文章描述一些COM对象的内部实现细节和它们在DirectShow基类的实现。本文假定你知道如何编程COM客户端程序—翻译 2008-06-02 16:36:00 · 3563 阅读 · 0 评论 -
编写DirectShow Filters—质量控制管理
质量控制是一种通过filter graph调整数据速率来响应运行性能的机制。如果renderer filter接收太多数据或太少数据,它会发送一个质量消息。这个质量消息请求数据速率的调节。默认的,质量消息从renderer向上直到达到能响应它(如果有)的filter。应用程序也可以实现一个自定义的质量管理器。如果是这种情况,renderer直接传递质量消息到应用程序的质量管理器。一、 质量消息质量翻译 2008-05-27 15:21:00 · 2958 阅读 · 2 评论 -
编写DirectShow Filters—线程和关键区
seeker本章描述了dshow filters 的线程,这些步骤可以让你在自定义filter 中避免系统崩溃和死锁。在本章中的例子使用伪码为演示你需要去编写的代码。假定自定义filter使用从Directshow基类继承的类。1. CMyInputPin::继承自CBaseInputPin2. CMyOutputPin: 继承自CBaseOutputPin3. CMyFilter:继承自CB翻译 2008-05-26 15:35:00 · 5587 阅读 · 2 评论 -
编写DirectShow Filters—动态格式改变
当两个filter 连接时,他们在一种媒体类型达成一致。这种媒体类型描述upstream filter将传递数据的格式。在大多数情况下,在连接的持续过程中,这个媒体类型是不变的,但是,directshow 也提供限制支持filter改变媒体类型。当一个filter转换媒体类型,叫做dynamic format change。如果你编写一个filter graph,应该意识到动态格式改变的机制。即使翻译 2008-05-22 16:32:00 · 5877 阅读 · 0 评论 -
编写DirectShow Filters—Filter的数据流动
seeker本节详细描述数据如何通过filter graph流动。集中于使用IMemInputPin/IAsyncReader的本地内存传输使用。为编写自定义filter的开发者提供了扩展。大量数据通过一个filter graph移动。粗略可为两类:媒体数据和控制数据。一般来说,媒体数据按downstream顺序传递而控制数据按upstream顺序传递。媒体包括视频帧、音频采样、MPEG包等等来形翻译 2008-05-20 09:51:00 · 4746 阅读 · 0 评论 -
编写DirectShow Filters—Filters如何连接
1. PIN连接filters通过IPin接口连接pin。output pin连接到input pin。每个pin连接有一个media sample,通过am_media_type描述。一个应用程序通过调用在filter graph manager上的方法来连接filter,而不是通过filters或者pins上的方法。应用程序可以直接指定哪些filters连接,通过IFilterGraph::C翻译 2008-05-19 08:55:00 · 4665 阅读 · 0 评论 -
dshow中使用Sample Grabber filter抓取图像
sample Grabber使用两种模式抓取图像:缓冲模式和回调模式,缓冲模式向下传递采样时拷贝每个采样,而回调模式对于每个采样调用程序定义的回调函数。回调模式是动态加载filter,影响程序性能,甚至引起死锁。其中的原因是如果采样是microsoft directdraw surface,在回调期间surface被锁定。win16 lock可以被好的锁定,但两个会引起潜在的死锁。具体在dshow原创 2008-05-14 15:36:00 · 12986 阅读 · 5 评论 -
编写DirectShow Filters—概述
seeker(一) 介绍DirectShow Filter开发本章提供开发一个自定义DirectShow filter的简单框架描述,也提供了链接到更详细讨论这些任务的主题。在阅读本章之前,阅读在About DirectShow主题,它描述了全面的DirectShow构架。1. DirectShow基类库Directshow sdk包括了编写filters的一组C++类。虽然它们不是必需的,但翻译 2008-05-16 10:01:00 · 3285 阅读 · 1 评论 -
重新压缩一个AVI文件
效果图:directshow文档中有一节关于重新压缩一个AVI,按照文章的思路:1、选择一个压缩Filter2、设置视频压缩属性3、生成重新压缩graph4、写文件给出所有源代码(文档中已经给出了绝大部分代码)#include "stdafx.h"#include "dshowexample.h"#include "RecompressingAVI.h"// CRecompressin原创 2008-05-13 16:34:00 · 2690 阅读 · 2 评论 -
简化MFC版amcap
一、问题的提出开始学习并熟悉DirectShow,最好的范例就是AMCap,因为它提供了两套Dshow最基本的代码模型:预览与捕获,并实现了显示设备属性页和流控等一系列技术,并且很多硬件捕获把它附加为软件,以便可以察看自己硬件的预览效果。AMCap在DirectX安装包内,安装后的路径为:XXX:/DXSDK/Samples/C++/DirectShow/Capture/AMCap。但原创 2008-01-07 10:39:00 · 5270 阅读 · 22 评论 -
编译Meida Player Classic(MPC)
相关的工具与环境:OS:Windows XP2CVS:Subversion+TortoiseSVNVS2005 Enterprise(vc8.0)SDK: Microsoft DirectX 9.0 SDK Update (Summer 2003) Windows Media Format SDK 9 mpc的开源地址:guliverklihttp://source原创 2008-03-11 17:14:00 · 1682 阅读 · 2 评论 -
dshow中playwnd的改写
为了熟悉代码,把playwnd从win32改成mfc,代码的复制与粘贴,没什么新功能添加,以后有机会再添加效果图原创 2008-03-04 16:00:00 · 1055 阅读 · 0 评论 -
编写DirectShow Filters—编写transform filters
seeker本节描述如何编写一个transform filter,这种filter一般要有一个输入PIN和一个输出PIN。为了演示这些步骤,本节描述一个假定的transform filter,它输出run-length编码(RLE)视频。并不描述RLE-编码算法本身。(DirectShow已经通过avi compressor filter提供一个RLE codec。)本章假定你将使用DirectS翻译 2008-06-03 16:20:00 · 7018 阅读 · 0 评论