目标编写一个transform filter,功能是对图像进行翻转。
MSDN中有一章 "Writing Transform Filters" 列出了编写transform filter的六个基本步骤,我们按照这六个步骤一步一步来。
一、选择基类
从CBaseFilter派生出三个用于编写transform filter的类,分别是:CTransformFilter 、CTransInPlaceFilter 和CVideoTransformFilter ,三个基类的区别可以看MSDN的说明,我们选择CTransformFilter类。
选择好基类,我们就创建一个空的DLL工程,添加三个文件,分别是:FlipFilter.h、FlipFilter.cpp和FlipFilter.def。
二、声明Filter类
在FlipFilter.h中添加下列代码声明
三、媒体类型协商
这一步是Filter的pin在连接的时候必须进行的步骤,主要重载三个函数:
1、HRESULT CheckInputType(const CMediaType *mtIn);