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

时间:2023-03-08 17:13:05

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

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 源代码分析 5: 位图覆盖滤镜(总结)

前面写了三篇文章,介绍了 位图覆盖滤镜的3个部分:

第一篇文章介绍了ffdshow的位图覆盖滤镜的对话框(Dialog)部分:ffdshow 源代码分析2 : 位图覆盖滤镜(对话框部分Dialog)

第二篇文章介绍了ffdshow的位图覆盖滤镜的设置(Settings)部分:ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings)

第三篇文章介绍了ffdshow的位图覆盖滤镜的滤镜(Filter)部分:ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter)

在此,用一张图总结他们之间的关系:

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

如图中所示,设置(Settings)部分是直接和系统上层关联的,它包含两个接口函数:createPages()和createFilters()。分别用于创建对话框(Dialog)和滤镜(Filter)。其中在TbitmapPage中对话框直接和注册表变量关联。而在TbitmapSettings中注册表变量和系统中的变量关联。TimgFilterBitmap最终读取TbitmapSettings中的变量完成相应的操作。

目前来开TimgFilterBitmap是不会直接读取TbitmapPage类中的值的。