directshow中如何获得视频数据?
我想写一个transform filter, 他的一个输入pin接收视频数据,我在该filter中对这些视频逐帧进行图像处理(比如去噪声),然后通过输出pin发送
我打算在ds中的nullnull(即minimal null filter)例子上的基础上改进,请问:
如何获得一帧一帧的视频数据,并判断是什么格式,以便处理?
谢谢!!!
[解决办法]
就nullnull这个例子而言:
你可以在CheckInputType中决定让你的filter接受什么类型的数据输入,比如:
HRESULT CheckInputType(const CMediaType* mtIn)
{
if (mtIn-> subtype == MEDIASUBTYPE_RGB565)
return S_OK;
return E_FAIL;
}
只接受RGB565类型的数据输入。另外input pin上有个成员m_mt,用于保存连接用的media type,可以参考。
视频图像帧在filter graph运行时,会传递到Transform函数。
[解决办法]
YUV吧