protected void Decompose() { base.Decompose(); if (_pbdaFilter != null) { Release.ComObject(_pbdaFilter); _pbdaFilter = null; } _bdaCa = null; }
/// <summary> /// Build the graph. /// </summary> public override void BuildGraph() { try { if (_graphState != GraphState.Idle) { Log.Log.Info("PBDA CC: device already initialised"); return; } Log.Log.Info("PBDA CC: build graph"); _graphBuilder = (IFilterGraph2) new FilterGraph(); _capBuilder = (ICaptureGraphBuilder2) new CaptureGraphBuilder2(); _capBuilder.SetFiltergraph(_graphBuilder); _rotEntry = new DsROTEntry(_graphBuilder); AddNetworkProviderFilter(typeof(ATSCNetworkProvider).GUID); AddTsWriterFilterToGraph(); if (!useInternalNetworkProvider) { AddMpeg2DemuxerToGraph(); } IBaseFilter lastFilter; AddAndConnectBDABoardFilters(_device, out lastFilter); _bdaCa = _filterTuner as IBDA_ConditionalAccess; if (_bdaCa == null) { throw new TvExceptionGraphBuildingFailed("PBDA CC: tuner filter does not implement required interface"); } AddPbdaFilter(ref lastFilter); CompleteGraph(ref lastFilter); bool connected = ConnectTsWriter(_filterTuner); Log.Log.Debug("PBDA CC: connect OOB pin result = {0}", connected); CheckCableCardInfo(); string graphName = _device.Name + " - NA Cable Graph.grf"; FilterGraphTools.SaveGraphFile(_graphBuilder, graphName); GetTunerSignalStatistics(); _graphState = GraphState.Created; } catch (Exception) { Dispose(); throw; } }
/// <summary> /// Build the graph. /// </summary> public override void BuildGraph() { try { if (_graphState != GraphState.Idle) { Log.Log.Info("PBDA CC: device already initialised"); return; } Log.Log.Info("PBDA CC: build graph"); _graphBuilder = (IFilterGraph2)new FilterGraph(); _capBuilder = (ICaptureGraphBuilder2)new CaptureGraphBuilder2(); _capBuilder.SetFiltergraph(_graphBuilder); _rotEntry = new DsROTEntry(_graphBuilder); AddNetworkProviderFilter(typeof (ATSCNetworkProvider).GUID); AddTsWriterFilterToGraph(); if (!useInternalNetworkProvider) { AddMpeg2DemuxerToGraph(); } IBaseFilter lastFilter; AddAndConnectBDABoardFilters(_device, out lastFilter); _bdaCa = _filterTuner as IBDA_ConditionalAccess; if (_bdaCa == null) { throw new TvExceptionGraphBuildingFailed("PBDA CC: tuner filter does not implement required interface"); } AddPbdaFilter(ref lastFilter); CompleteGraph(ref lastFilter); bool connected = ConnectTsWriter(_filterTuner); Log.Log.Debug("PBDA CC: connect OOB pin result = {0}", connected); CheckCableCardInfo(); string graphName = _device.Name + " - NA Cable Graph.grf"; FilterGraphTools.SaveGraphFile(_graphBuilder, graphName); GetTunerSignalStatistics(); _graphState = GraphState.Created; } catch (Exception) { Dispose(); throw; } }
protected void Decompose() { base.Decompose(); if (_pbdaFilter != null) { Release.ComObject(_pbdaFilter); _pbdaFilter = null; } _bdaCa = null; }