public override void Setup() { base.Setup(); //create bridge controller _bridgeController = new GMFBridgeController(); //add a video stream to the bridge //1 = Video stream 0 = Audio stream, format type, 1 = dispose stream going into disconnected sink 0 = buffer stream going into disconnected sink _bridgeController.AddStream(1, eFormatType.eAny, 1); _netSrcMediaType = new AMMediaType(); _netSrcMediaType.majorType = MediaType.Stream; // _netSrcMediaType.subType = new Guid(0x5fe31118, 0x25fb, 0x4d77, 0xbc, 0x62, 0x3d, 0x9c, 0xc3, 0x2b, 0xbe, 0x67); _netSrcMediaType.subType = Guid.Empty; AddSourceFilter(); //insert Infinite Pin Tee into playback graph _infPinTee = AddFilterByName(_graphBuilder, FilterCategory.LegacyAmFilterCategory, "Infinite Pin Tee Filter"); //add a bridge sink to the playback graph _bridgeSink = (IBaseFilter)_bridgeController.InsertSinkFilter(_graphBuilder); _videoCallbackFilter = AddFilterByName(_graphBuilder, FilterCategory.LegacyAmFilterCategory, "LEAD Video Callback Filter (2.0)"); _callback = (ILMVCallback)_videoCallbackFilter; _callback.CallInSameThread = false; _callback.ReceiveProcObj = this; RenderSource(); }
public override void Setup() { base.Setup(); lock (instanceMutex) { //create bridge controller _bridgeController = new GMFBridgeController(); //add a video stream to the bridge //1 = Video stream 0 = Audio stream, format type, 1 = dispose stream going into disconnected sink 0 = buffer stream going into disconnected sink _bridgeController.AddStream(1, eFormatType.eAny, 1); AddLeadNetSrc(); AddLeadNetDemux(); ConnectFilters(_graphBuilder, _netSrc, "Output", _netDmx, "Input 01", true); //insert Infinite Pin Tee into playback graph _infPinTee = AddFilterByName(_graphBuilder, FilterCategory.LegacyAmFilterCategory, "Infinite Pin Tee Filter"); //add a bridge sink to the playback graph _bridgeSink = (IBaseFilter)_bridgeController.InsertSinkFilter(_graphBuilder); //finish building playback/source graph, so we can negotiate data types on bridge RenderNetDemux(); _telemetryTimer = new System.Threading.Timer(new System.Threading.TimerCallback(TelemetryTimer_Tick)); } }