=====================================================

ffdshow源代码分析系列文章列表:

ffdshow 源代码分析 1: 整体结构

ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog)

ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings)

ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter)

ffdshow 源代码分析 5: 位图覆盖滤镜(总结)

ffdshow 源代码分析 6: 对解码器的dll的封装(libavcodec)

ffdshow 源代码分析 7: libavcodec视频解码器类(TvideoCodecLibavcodec)

ffdshow 源代码分析 8: 视频解码器类(TvideoCodecDec)

ffdshow 源代码分析 9: 编解码器有关类的总结

=====================================================

ffdshow是一个非常强大的DirectShow解码器,封装了ffmpeg,libmpeg2等解码库。它也提供了丰富的加工处理选项,可以锐化画面,调节画面的亮度等等。不止是视频,FFDShow现在同样可以解码音频,AC3、MP3等音频格式都可支持。并且可以外挂winamp 的DSP插件,来改善听觉效果。一个词形容:强大。

因为项目的要求,需要对ffdshow进行二次开发,正好有这个机会,分析研究一下ffdshow的源代码。

ffdshow项目的资源可以从sourceforge下载。包括编译好的程序,以及原代码等,下载地址:http://sourceforge.net/projects/ffdshow-tryout/

注意:sourceforge上有两个版本的ffdshow:ffdshow以及ffdshow-tryout。其中前一个版本很早之前已经停止开发了,因此我们需要选择后一个(ffdshow-tryout)。

下载源代码的方法不再赘述,下面直接进入正题。源代码下载后,需要进行编译,推荐使用源代码根目录下的bat脚本一次性完成所有的资源编译。

编译完成后我们就可以打开源代码根目录里的工程了。我自己的开发环境是VC2010,打开后工程如下图所示(解决方案的名字被我修改了= =):

由图可见,ffdshow由一大堆工程组成,乍一看给人一种杂论无章的感觉,其实大部分工程我们不用去理会,我们重点研究最重要的工程就是那个名字叫“ffdshow”的工程。

下面我介绍几个最重要的文件夹里包含的代码的功能:

audiofilters:音频滤镜都在这里面(例如EQ,调节高低频等)

baseclasses:微软自带directshow的sdk里面就有,主要是微软为了方便DirectShow开发而提供的一些基本的类

codecs:支持的解码器都在这里(例如libavcodec,libmpeg2等)

convert:色彩转换的一些功能(没太用过)

decss:解除版权加密的一些功能(没太用过)

dialog:音频视频滤镜的配置页面

doc:文档,不是程序

ffvfw:VFW相关(目前没太用过)

Header Files:核心代码的头文件

imgfilters:视频滤镜都在这里(显示QP/MV,加LOGO,显示视频信息等)

Resource Files:资源文件

settings:音频视频滤镜的配置信息

Source Files:核心代码的源文件

subtitles:字幕相关的功能

以上用红色标出的,是我们二次开发中最有可能会涉及到的三个部分。掌握了这三个部分,就可以往ffdhow中添加自己写的滤镜(注意:这里说的是视频滤镜,音频的方法是一样的)

黄色背景标出的部分,虽然我们可能不需要做出什么改变,但是为了了解ffdshow的架构,我们需要分析其中的代码。

打了好多字啊。。。休息休息先

ffdshow 源代码分析1 : 整体结构相关推荐

  1. ffdshow 源代码分析 9: 编解码器有关类的总结

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  2. ffdshow 源代码分析 7: libavcodec视频解码器类(TvideoCodecLibavcodec)

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  3. ffdshow 源代码分析 6: 对解码器的dll的封装(libavcodec)

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  4. ffdshow 源代码分析 5: 位图覆盖滤镜(总结)

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  5. ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter)

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  6. ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog)

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  7. ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings)

    ===================================================== ffdshow源代码分析系列文章列表: ffdshow 源代码分析 1: 整体结构 ffds ...

  8. LIRe 源代码分析 1:整体结构

    ===================================================== LIRe源代码分析系列文章列表: LIRe 源代码分析 1:整体结构 LIRe 源代码分析 ...

  9. Media Player Classic - HC 源代码分析 1:整体结构

    ===================================================== Media Player Classic - HC 源代码分析系列文章列表: Media P ...

最新文章

  1. RAC安装时需要执行4个脚本及意义
  2. linux sysctl重启服务,Linux /etc/sysctl.conf重启没有生效
  3. java 存储png文件_vue图片上传及java存储图片(亲测可用)
  4. 用Java描述数据结构之二叉树,前序遍历,中序遍历,后序遍历
  5. 客户端通过SSH private key 登录远端服务器
  6. 我们如何制作xkcd样式图?
  7. CI中创建你自己的类库
  8. Spring context:annotation-config/ 说明
  9. (10)Redis------必须知道的基础内容
  10. jqTransform表单美化
  11. EditPlus之Java开发环境配置
  12. windows server2012 安装网卡驱动
  13. adobe 不适应 Max to分屏软件的修改
  14. 计算机无法验证签名,你如何解决电脑无法验证数字签名的问题
  15. 论文发表都有哪些期刊
  16. 2020年Java集合课堂笔记
  17. 在GraphPad Prism Mac中处理多份文件
  18. 门店数字化转型| 美容院管理系统
  19. CXF 集成wss4j
  20. lpop 原子_深圳大学张文静教授团队ACS Nano:单原子铂修饰的二硫化钒催化剂提高电催化析氢性能...

热门文章

  1. dts无法识别excel中的数字值?
  2. HDU2073 无限的路【数学】
  3. 测试 —— 与开发双手互搏的艺术
  4. Python 标准库 —— xml
  5. python是什么 自学-这是大多数新手入门之后强烈推荐的python自学入门指南秘笈...
  6. 没有基础的人可以学python吗-没有任何基础的人,该如何学习Python?「附具体步骤」...
  7. python学到什么程度可以找到工作-Python学到什么程度可以面试工作?
  8. python可以给你干什么-Python到底可以做什么?
  9. 为何python不好找工作-为何有人说Python不好找工作?
  10. python与java前景-Python与Java相比,其优势在哪?