/// <summary> /// Attaches this graph to a source graph /// </summary> /// <param name="source">source sub graph to get data from</param> public void SetSource(ISourceSubGraph source) { Debug.WriteLine("DefaultRenderer.SetSource: " + source.GetType().ToString()); List <DetailPinInfo> pins = null; try { input = (IBaseFilter)source.Controller.InsertSourceFilter(source.Output, this.graph); pins = input.EnumPinsDetails(); foreach (DetailPinInfo i in pins) { int hr = this.captureGraph.RenderStream(null, null, i.Pin, null, null); Debug.WriteLine("DefaultRenderer rendered stream; HRESULT = " + hr.ToString("x")); } } finally { if (pins != null) { pins.Release(); } } }
/// <summary> /// Attach this graph to a source /// </summary> /// <param name="source">the source sub graph</param> public void SetSource(ISourceSubGraph source) { Debug.WriteLine("LTNetworkSink.SetSource: " + source.GetType().ToString()); List <DetailPinInfo> pins = null; try { netMux = (IBaseFilter) new LMNetMuxClass(); graph.AddFilter(netMux, @"LEAD Network Multiplexer (2.0)"); lmNetMux = (LMNetMux)netMux; lmNetMux.LiveSource = this.LiveSource; Debug.WriteLine(String.Format("LiveSource={0}", lmNetMux.LiveSource)); lmNetMux.MaxQueueDuration = this.MaxQueueDuration; netSnk = (IBaseFilter) new LMNetSnkClass(); graph.AddFilter(netSnk, "LEAD Network Sink (2.0)"); InitializeNetworkSink(); input = (IBaseFilter)source.Controller.InsertSourceFilter(source.Output, this.graph); pins = input.EnumPinsDetails(); int muxInputNumber = 1; foreach (DetailPinInfo i in pins) { IPin muxPin = null; try { muxPin = DsFindPin.ByName(netMux, "Input " + muxInputNumber.ToString("D2")); FilterGraphTools.ConnectFilters(this.graph, i.Pin, muxPin, false); } finally { if (muxPin != null) { muxPin.Release(); } } muxInputNumber++; } FilterGraphTools.ConnectFilters(this.graph, netMux, "Output 01", netSnk, "Input", false); } finally { if (pins != null) { pins.Release(); } } }
private void btnAddSource_Click(object sender, EventArgs e) { try { source = new LTNetworkSource(tbLtsfUrl.Text); ((INetworkSource)source).PropertyChanged += new PropertyChangedEventHandler(source_PropertyChanged); connector.RunWorkerAsync(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// Sets the source for this graph /// </summary> /// <param name="source">source sub graph</param> public void SetSource(ISourceSubGraph source) { Debug.WriteLine("OggWriter.SetSource: " + source.GetType().ToString()); List <DetailPinInfo> pins = null; try { input = (IBaseFilter)source.Controller.InsertSourceFilter(source.Output, this.graph); pins = input.EnumPinsDetails(); int oggStreamCounter = 0; foreach (DetailPinInfo i in pins) { if (i.Info.dir == PinDirection.Output) { IPin destPin = DsFindPin.ByName(oggMux, "Stream " + oggStreamCounter.ToString()); if (destPin != null) { FilterGraphTools.ConnectFilters(this.graph, i.Pin, destPin, false); Release(destPin); oggStreamCounter++; } } } FilterGraphTools.ConnectFilters(this.graph, oggMux, "Ogg Stream", fileWriter, "in", false); } finally { if (pins != null) { pins.Release(); } } }
private void btnTestPattern_Click(object sender, EventArgs e) { source = new TestPattern(true); graph.Source = source; }
/// <summary> /// Connects the GMFBridge between source and destination /// </summary> /// <param name="source">this / source sub graph</param> /// <param name="dest">destination sub graph</param> public static void BridgeTo(this ISourceSubGraph source, ISinkSubGraph dest) { source.Controller.BridgeGraphs(source.Output, (dest != null) ? dest.Input : null); }