(DirectX系列07)DirectShow MFC下Filter编码分析

简介:     MFC下Filter的编写和Win32下Filter的编写极其相似,但又存在很多不同点,在Win32中需要去实现CreateInstance函数,而在MFC直接用NEW 动态产生,不过这并不代表不需要去维护Filter对象计数,因此在MFC ...

    MFC下Filter的编写和Win32下Filter的编写极其相似,但又存在很多不同点,在Win32中需要去实现CreateInstance函数,而在MFC直接用NEW 动态产生,不过这并不代表不需要去维护Filter对象计数,因此在MFC 下Filter中依然需要调用AddRef函数来维护这个平衡;其它还不需要实现注册表注册等功能,如下代码;

////////////////////////////////////////////////////////////////////////////////
CAppTransform::CAppTransform(LPUNKNOWN pUnkOuter, HRESULT *phr) :
CTransInPlaceFilter(NAME("App Transform"), pUnkOuter, GUID_NULL, phr)
{
}

HRESULT CAppTransform::Transform(IMediaSample *pSample)
{
 // Override to do something inside the application
 // Such as grabbing a poster frame...
 // ...

    return S_OK;
}

// Check if we can support this specific proposed type and format
HRESULT CAppTransform::CheckInputType(const CMediaType *pmt)
{
 // We accept a series of raw media types
 if (pmt->majortype == MEDIATYPE_Video &&
  (pmt->subtype == MEDIASUBTYPE_RGB32 ||
  pmt->subtype == MEDIASUBTYPE_RGB24 ||
  pmt->subtype == MEDIASUBTYPE_RGB565 ||
  pmt->subtype == MEDIASUBTYPE_RGB555 ||
  pmt->subtype == MEDIASUBTYPE_UYVY ||
  pmt->subtype == MEDIASUBTYPE_YUY2))
 {
  return NOERROR;
 }
 return E_FAIL;
}

目录
相关文章
|
编译器 开发工具 C语言
QT应用编程:基于VLC开发音视频播放器(句柄方式)
QT应用编程:基于VLC开发音视频播放器(句柄方式)
396 0
QT应用编程:基于VLC开发音视频播放器(句柄方式)
|
编译器 C语言
QT应用编程: 使用QTAV得到解码视频每帧图像
QT应用编程: 使用QTAV得到解码视频每帧图像
374 0
QT应用编程: 使用QTAV得到解码视频每帧图像
|
IDE 开发工具
QT应用编程: 解决Visual Studio下使用qDebug没有输出、输出中文乱码
QT应用编程: 解决Visual Studio下使用qDebug没有输出、输出中文乱码
873 0
QT应用编程: 解决Visual Studio下使用qDebug没有输出、输出中文乱码
|
存储 编解码 Linux
嵌入式Linux下LCD应用编程: 调用giflib库解码显示GIF动态图
嵌入式Linux下LCD应用编程: 调用giflib库解码显示GIF动态图
643 0
嵌入式Linux下LCD应用编程: 调用giflib库解码显示GIF动态图
|
.NET C# 计算机视觉
为基于OpenCV的图像处理程序编写界面—关于QT\MFC\CSharp的选择以及GOCW的介绍
基于OpenCV编写图像处理项目,除了算法以外,比较重要一个问题就是界面设计问题。对于c++语系的程序员来说,一般来说有QT/MFC两种考虑。QT的确功能强大,特别是QML编写android界面很有一套(https://www.cnblogs.com/jsxyhelu/p/8286476.html),在树莓派上进行设计也很方便(https://www.cnblogs.com/jsxyhelu/p/7839062.html);但是使用QT的一个现实问题就是和现有平台的结合,比如客户需要将结果导出到excel中,使用QT就比较别扭(当然不是说不可以)。
2282 0
|
Shell C# Windows