public void CloseAll() { this._bGraphIsBuilt = false; try { this.CloseDirectShowLogFile(); } catch (Exception) { } if (this.DX.MediaControl != null) { try { this.DX.MediaControl.StopWhenReady(); this.DX.MediaControl.Stop(); } catch (Exception) { } } if (this._bHandlersAdded) { this.RemoveHandlers(); } if (this._pSampleGrabberHelper != null) { this._pSampleGrabberHelper.Dispose(); this._pSampleGrabberHelper = null; } this.DX.CloseInterfaces(); this._bMixerImageWasUsed = false; this._bMixerEnabled = false; }
private void AddFilter_SampleGrabber() { this.DX.SampleGrabber = new SampleGrabber() as ISampleGrabber; this.DX.SampleGrabberFilter = this.DX.SampleGrabber as IBaseFilter; this._pSampleGrabberHelper = new SampleGrabberHelper(this.DX.SampleGrabber, false); this._pSampleGrabberHelper.ConfigureMode(); DsError.ThrowExceptionForHR(this.DX.FilterGraph.AddFilter(this.DX.SampleGrabberFilter, "Sample Grabber")); }
/// <summary> /// Close and dispose all camera and DirectX stuff. /// </summary> public void CloseAll() { _bGraphIsBuilt = false; // close log file if needed try { CloseDirectShowLogFile(); } catch (Exception ex) { Debug.WriteLine(ex); } // stop rendering if (DX.MediaControl != null) { try { DX.MediaControl.StopWhenReady(); DX.MediaControl.Stop(); } catch (Exception ex) { Debug.WriteLine(ex); } } if (_bHandlersAdded) { RemoveHandlers(); } //FilterGraphTools.RemoveAllFilters(this.graphBuilder); #if DEBUG if (_rot != null) { _rot.Dispose(); } #endif // Dispose Managed Direct3D objects if (_pSampleGrabberHelper != null) { _pSampleGrabberHelper.Dispose(); _pSampleGrabberHelper = null; } DX.CloseInterfaces(); _bMixerImageWasUsed = false; _bMixerEnabled = false; #if USE_D3D _UseGDI = true; // Dispose Managed Direct3D objects if (_pDirect3DMixing != null) { _pDirect3DMixing.Dispose(); _pDirect3DMixing = null; } #endif }
/// <summary> /// Adds SampleGrabber for screenshot making. /// </summary> private void AddFilter_SampleGrabber() { int hr = 0; // Get the SampleGrabber interface DX.SampleGrabber = new SampleGrabber() as ISampleGrabber; // Configure the sample grabber DX.SampleGrabberFilter = DX.SampleGrabber as IBaseFilter; _pSampleGrabberHelper = new SampleGrabberHelper(DX.SampleGrabber, false); _pSampleGrabberHelper.ConfigureMode(); // Add the sample grabber to the graph hr = DX.FilterGraph.AddFilter(DX.SampleGrabberFilter, "Sample Grabber"); DsError.ThrowExceptionForHR(hr); }
/// <summary> /// Close and dispose all camera and DirectX stuff. /// </summary> public void CloseAll() { _bGraphIsBuilt = false; // stop rendering if (DX.MediaControl != null) { try { DX.MediaControl.StopWhenReady(); DX.MediaControl.Stop(); } catch (Exception ex) { Debug.WriteLine(ex); } } if (_pSampleGrabberHelper != null) { _pSampleGrabberHelper.Dispose(); _pSampleGrabberHelper = null; } DX.CloseInterfaces(); }