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

    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;
}

时间: 2024-12-03 08:23:41

(DirectX系列07)DirectShow MFC下Filter编码分析的相关文章

(DirectX系列06)DirectShow 字符叠加Filter编码分析

(DirectX系列06)DirectShow 字符叠加Filter编码分析 在很多视频播放的软件当中,字幕的处理是免不了的,有些可能本身已经加载到图像当中未做处理,但大部分都是通过字符叠加来进行处理的.DirectShow 的字符叠加Filter在这些软件中都扮演这绝佳的作用.这一节来介绍DirectShow字符叠加Filter编码的实现,如下详细介绍: 这个Filter的大概作用是在视频流指定的一段时间内进行字符叠加,字符字体.大小.颜色都进行控制,普遍支持RGB 的各种编码格式,同时实现字

(DirectX系列09)DirectShow EDS应用编码分析

(DirectX系列09)DirectShow EDS应用编码分析 DES (DirectShow Editing Services),是一套基于DirectShow核心框架的编程接口.DES的出现,简化了视频编辑任务,弥补了DirectShow对于媒体文件非线性编辑支持的先天性不足.但是,就技术本身而言,DES并没有超越DirectShow Filter架构,而只是DirectShow Filter的一种增强应用. 本章通过DirectX 下timelinetest为例子详细介绍Eds应用编码

关于mfc下的一个接受udp/ts视频流的实时播放器

问题描述 关于mfc下的一个接受udp/ts视频流的实时播放器 RT,初次接触播放器开发, 对这些东西不是很懂,请求大牛可以告诉我,总体框架应该如何设计,应该用什么库来进行解码(ffmpeg?),什么库来进行播放(sdl? directshow?),或者说有什么现成的东西可以应用.跪谢!!!! 解决方案 您能说详细点么?我懂得不太多.wmp怎么播放网络流文件解码? 解决方案二: http://bbs.csdn.net/topics/390129795 解决方案三: 没人懂么?求解!!!!!!!!

sizeof-关于MFC下的UDP通信,为什么ReceiveFrom时只能接受到一字节数据

问题描述 关于MFC下的UDP通信,为什么ReceiveFrom时只能接受到一字节数据 void CCHATDlg::OnBnClickedSendButton() { CString str,sIP; GetDlgItemText(IDC_SEND_EDIT, str); GetDlgItemText(IDC_IP_EDIT, sIP); m_sock.SendTo(str, str.GetLength(),PORT, sIP); } void CCHATDlg::Onreceive(void

mfc-VS2010 MFC 下如何调整状态栏高度

问题描述 VS2010 MFC 下如何调整状态栏高度 小弟最近在vs2010下 mfc多文档开发的过程中,需要调整界面上状态栏的高度,但是系统不提供GetStatusBarCtrl()或直接函数改变其高度,求大神告诉解决方法,深表感谢! ps:应该可以新建类继承CMFCStatusBar,但是具体怎么实现呢?

MFC下如何快速找到界面的方法对应的代码????

问题描述 MFC下如何快速找到界面的方法对应的代码???? MFC下如何快速找到界面的方法对应的代码,大神们请指教!!! 解决方案 再资源中,双击界面上的按钮等,就可以自动定位到编译器中的按钮代码 解决方案二: 用classwizard,或者直接双击对话框设计器中的控件.

列举出字体信息,MFC下拉框列举字体

问题描述 列举出字体信息,MFC下拉框列举字体 MFC下拉框列举字体,用的是EnumFomt么?群高手告诉我是这样的,但是查了百度没有COMBOX的 解决方案 你是不是想太多了?你看看这个可以解决你的问题吗:http://www.cnblogs.com/kzloser/archive/2012/11/21/2780246.html

串口通信-如何在Vs2010基于MFC下,编写代码,强行占用【串口】

问题描述 如何在Vs2010基于MFC下,编写代码,强行占用[串口] 自己编写了一个程序,需要USB串口与程序相连接.可是如果在程序运行过程中,不小心动了 USB线的话,程序就卡了,提示[串口被占用],需要把USB线拔下来再插一遍才能解决问题,所以问有没有什么代码能直接解决问题?求大侠指导!

定时器-mfc下编写的滚动字幕信息不流畅

问题描述 mfc下编写的滚动字幕信息不流畅 我用mfc编写滚动信息,SetTimer定时器改变DrawText函数每次绘画的位置,信息能够实现滚动,但是不流畅. 解决方案 SetTimer 时间时隔 显示的实现可能有问题,可以看看显示,即刷新滚动占用的时间与 SetTimer 时间的大小关系 滚动每次移动的位移,也可能导致你所说的现象 解决方案二: SetTimer的精度不是很高,差不多是50ms左右. 解决方案三: SetTimer的间隔进行一下调整优化.选择一个合适的更新间隔