我已在msdn RenderStream中读到,我们可以多次调用RenderStream
来制作长过滤器链。我有以下过滤链:
Capture Filter -> Sample Grabber -> Transformation Filter -> Video Mixing Renderer9
我正在尝试以编程方式使用RenderStream
执行相同操作。
pBuid->RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,pCap,pSampleGrabber,pTransformFilter);
pBuid->RenderStream(NULL,NULL,pTransformFilter,NULL,pVMRender);
但是,上面的代码不起作用。执行后,首先RenderStream
显示控制台窗口(win32)并且什么都不做。
请帮助我如何呈现Capture->Sample Grabber->Transform Filter->Renderer
。
答案 0 :(得分:0)
如果您使用Pin_Category_preview
,则需要使用videoRenderer
。请尝试以下方法:
pBuid->RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,pCap,pSampleGrabber,pTransformFilter);
pBuid->RenderStream(&PIN_CATEGORY_PREVIEW,&MEDIATYPE_Video,pCap,null,null); //the preview pin automatically connects to the renderer.
答案 1 :(得分:0)
解决了这个问题: @CPlusSharp, 你是对的,这是媒体类型的问题。我为AM_MEDIATYPE设置了适当的媒体提示。 感谢所有人的帮助:)