当前位置: 代码迷 >> 多媒体/流媒体开发 >> DirectShow Transform Filter,该怎么处理
  详细解决方案

DirectShow Transform Filter,该怎么处理

热度:10744   发布时间:2013-02-26 00:00:00.0
DirectShow Transform Filter
大家好,请问DirectShow中transform   Filter和主程序之间如何传递参数,非常急,请大家帮帮忙!我正在写一个transform   Filter,这个Filter需要从主程序获取一些信息。
谢谢了。

------解决方案--------------------------------------------------------
像设置类的属性那样!!
------解决方案--------------------------------------------------------
filter暴露接口。
如:(filter的名字为TestFilter)
在ITestFilter文件里,
写几个接口:
DECLARE_INTERFACE_(ITestFilter, IUnknown)
{
STDMETHOD(SetParameter) (THIS_
const char * inName, const char *inValue
) PURE;

STDMETHOD(StartVideo)(THIS_
const int inIsVideo, const int inIsAudioUp, BOOL cifd1
) PURE;

STDMETHOD(BeginRecord)(THIS_
const char * inFileName
) PURE;

STDMETHOD(EndRecord) (THIS_
) PURE;
};

在TestFilter.h和TestFilter.cpp声明和实现它们。
然后在directshow里,
IBaseFilter *pFilter = m_pTestSourceFilter-> GetFilter();
ITestFilter *pTestFilter = NULL;
pFilter-> QueryInterface(IID_ITestFilter, (void **)&pTestFilter);

pTestFilter-> StartVideo(1, 0, cifd1);

pFilter-> Release();
  相关解决方案