Example #1
0
 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;
 }
Example #2
0
 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"));
 }
Example #3
0
        /// <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
        }
Example #4
0
        /// <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);
        }
Example #5
0
		/// <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();


		}