Crossbar filter change current input to Composite

拟墨画扇 提交于 2019-12-02 19:52:29

问题


I am new to DirectShow. I am writing an application in C# for capturing from Analog capture card. I have an analog capture card & I want to know how to change Analog Crossbar filter property, from "0: Analog Tuner In" to "1: Video Composite In". Here is my Filter Graph

I can not connect Tuner's "Analog Video pin" to "Video Composite In" of Crossbar filter. I tried running "Route" method of IAMCrossbar filter, which failed. I don't know whether my path is correct. Please guide...


回答1:


IAMCrossbar::Route is how you do it. Make sure to read Working with Crossbars for details - it is C++ API, however I suppose you are using DirectShow.NET and it has similar methods.

Solution code snippet pulled from comment below:

IAMCrossbar Xbar = (IAMCrossbar)pNM8001AnalogXbar; 
//hr = Xbar.CanRoute(1, 0); 
hr = Xbar.Route(1, 0); 
checkHR(hr, "Some NM8001AnalogXbar Problem"); //CONNECT NM8001 Analog TUNER and NM8001 Analog XBAR 
hr = pGraph.ConnectDirect(
  GetPin(pNM8001AnalogTuner, "Analog Video"), 
  GetPin(pNM8001AnalogXbar, "0: Video Tuner In"), 
  null); 
checkHR(hr, "Can't Connect NM8001AnalogTuner and NM8001AnalogXbar");


来源:https://stackoverflow.com/questions/14930867/crossbar-filter-change-current-input-to-composite

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!