WCE下添加fliter及使用filter(三) 之 添加OutputStream

原创 2012年03月23日 15:24:07

转载请标明是引用于 http://blog.csdn.net/chenyujing1234

例子代码:

http://www.rayfile.com/zh-cn/files/43c325a3-74b9-11e1-84a4-0015c55db73d/

1、添加CMyOutputStream类.

class CMyOutputStream 
	: public CBaseOutputPin, 
	public IAMStreamConfig, 
	public IKsPropertySet
{
public:
	DECLARE_IUNKNOWN
	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);


public:

	//  IQualityControl implementations

	STDMETHODIMP Notify(IBaseFilter * pSender, Quality q);

	//  IAMStreamConfig implementations

	HRESULT STDMETHODCALLTYPE SetFormat(AM_MEDIA_TYPE *pmt);
	HRESULT STDMETHODCALLTYPE GetFormat(AM_MEDIA_TYPE **ppmt);
	HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(int *piCount, int *piSize);
	HRESULT STDMETHODCALLTYPE GetStreamCaps(int iIndex, AM_MEDIA_TYPE **pmt, BYTE *pSCC);

	//  IKsPropertySet implementations

	HRESULT STDMETHODCALLTYPE Set(REFGUID guidPropSet, DWORD dwID, void *pInstanceData, DWORD cbInstanceData, void *pPropData, DWORD cbPropData);
	HRESULT STDMETHODCALLTYPE Get(REFGUID guidPropSet, DWORD dwPropID, void *pInstanceData,DWORD cbInstanceData, void *pPropData, DWORD cbPropData, DWORD *pcbReturned);
	HRESULT STDMETHODCALLTYPE QuerySupported(REFGUID guidPropSet, DWORD dwPropID, DWORD *pTypeSupport);

	//  CBaseOutputPin implementations
	CMyOutputStream(CMyFilter *pParent, CCritSec* pLock, HRESULT *phr, LPCWSTR pPinName);

	HRESULT DecideBufferSize(IMemAllocator *pIMemAlloc, ALLOCATOR_PROPERTIES *pProperties);
	HRESULT CheckMediaType(const CMediaType *pMediaType);
	HRESULT GetMediaType(int iPosition, CMediaType *pmt);

	HRESULT Active();
	HRESULT Inactive();
	HRESULT DeliverEndOfStream();
	HRESULT DeliverBeginFlush();
	HRESULT DeliverEndFlush();
	HRESULT Deliver(IMediaSample* pSample);

private:
	CMyFilter *m_pParent;
	COutputQueue* m_pOutputQ;
};

2、在CMyFilter成员中添加CMyOutputStream* m_pOutput;
     同时在构造函数中添加对它的初始它.

    在CMyFilter::GetPin中return m_pOutput;

3、接下来就可以在CMyFilter中定义自己的业务函数,在函数中可以使用CMyOutputStream进行控制了.

WCE下添加fliter及使用filter(一)

作者:Jackchenyj 转自:http://blog.csdn.net/chenyujing1234/article/details/7369031 转载请标明是引用于 htt...
  • whw8007
  • whw8007
  • 2014年01月14日 10:35
  • 395

向filter过滤器中的request对象添加额外的参数

有时候我们会遇到这么一些需求,在filter中获取一些参数进行处理,同时将处理好的参数重新添加到request对象中,这时候我们在filter中直接使用request.setAttribute()是无...
  • tyyytcj
  • tyyytcj
  • 2017年11月14日 11:11
  • 222

代码干货|Logstash详解之——filter模块

Logstash三个组件的第二个组件,也是真个Logstash工具中最复杂,最蛋疼的一个组件,当然,也是最有作用的一个组件。 1、grok插件 grok插件有非常强大的功能,他能匹配一切数据,但是他的...
  • CS13522431352
  • CS13522431352
  • 2017年08月02日 14:34
  • 1735

Solr Filter过滤器介绍

摘要: Solr的过滤器对接收到的标记流(TokenStream )做额外的处理。参见原文 Solr的Analyzer分析器、Tokenizer分词器、Filter过滤器的区别/联系 Ana...
  • jiangchao858
  • jiangchao858
  • 2017年02月12日 21:48
  • 2553

Spring MVC根据运行参数添加filter代理(启动时动态添加filter和listener)

spring mvc启动时通过编程的方式添加filter和listener。借此可以通过启动参数决定过滤器和监听器的使用。...
  • dongpy1111
  • dongpy1111
  • 2016年10月15日 10:10
  • 1213

有关采用Filter:实现网站自动登录功能模块

有关采用Filter:实现网站自动登录的功能模块. 该功能模块结合CSDN网站的自动登录功能模块的分析,结合JavaWeb课程的Filter的知识,Cookie技术,JSP技术,Servlet技术等完...
  • redarmy_chen
  • redarmy_chen
  • 2014年01月02日 15:13
  • 7651

卷积神经网络中的filter是怎么工作的

首先,写这个文档的原因是因为我转载了一篇文章,不会编辑。擦。。。。 首先收输入层是毛东西?     就是输入的图像,有可能是三通道的有可能是单通道的。    比如28*28*1或者28*28*3 ...
  • qq_21033779
  • qq_21033779
  • 2017年10月12日 09:46
  • 366

ionic-基于angularjs和javascript实用的顶部搜索过滤组件

最近看新闻,首先是乐视的资金危机,现在死乐视的裁员,好听点叫“末位淘汰”。 年关将至,不少员工在翘首期盼年终奖。然而也有一部分员工开始恐慌,因为不少企业一到年终都会纷纷忙着裁员。双十一期间,大家正疯狂...
  • u012979009
  • u012979009
  • 2016年12月02日 11:58
  • 1885

angular学习(十)—— Filter

转载请写明来源地址:http://blog.csdn.net/lastsweetop/article/details/54910212过滤器过滤器将表达式的运算结果格式化后呈现给用户,可以用于视图模版...
  • lastsweetop
  • lastsweetop
  • 2017年02月07日 15:18
  • 2258

设计模式:Filter过滤器

场景1: 每种Filter进行某种处理,将各个Filter连在一起形成一个FilterChain。当需要往FilterChain中加入新的Filter,或者改变各个Filter的处理顺序时,可以方便...
  • u011697278
  • u011697278
  • 2016年12月18日 21:06
  • 606
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WCE下添加fliter及使用filter(三) 之 添加OutputStream
举报原因:
原因补充:

(最多只允许输入30个字)