DirectShow网络源过滤器-Net Source Filter

 

DirectShow的学习是痛苦的过程,对于一个写C#,JAVA而从没接触过VC的人学习FILTER的编写那更是超级痛苦。

项目中有网络实时监控的功能,软件UI是用C#实现的,回放是基于DIRECTSHOW做的,过滤器都是用的免费开源的。但网络监控难度就有点大了,H264格式传输,H264解码。。。传输好说,主要是解码显示,自己写解码显示几乎是不可能的任务。无奈,从头看VC,DIRECTSHOW。功夫不负人啊,泪奔T_T。

*暂时只有视频信息,后面要做的工作是加入音频、同步等,可配置支持为TCP。

一、架构

1、过滤器图表

 


2、项目结构

 


二、学习心得

      DSSDK中的FILTER例子一定要看,多看几遍,然后通过网上的学习资料自己试着写一个简单的过滤器。了解过滤器的工作模式:过滤器被添加进图表即是创建一个实例,RUN则是调用每个PIN上的RUN接口。数据处理思路:

1、获取要传递的数据

2、条用输出Pin的GetDeliveryBuffer方法,获取输出Pin上的一个待填充的sample

3、用准备好的数据填充这个sample

4、调用输出Pin上的Deliver将sample丢出

    发现VC代码看不懂没关系,慢慢看,看10遍。。。居然看明白了。

你可能感兴趣的:(C/C++/VC,directshow)