Ejemplo n.º 1
0
 protected override DirectShow.Binding.IGraph Open(Uri.Locator name)
 {
     Graph.Live result = null;
     if (name.Scheme == "directshow+capture" && name.Authority.NotNull() && name.Query.NotNull() && name.Query["video"].NotNull())
     {
         DirectShow.Binding.Graph temporary = new DirectShow.Binding.Graph();
         bool built = temporary.Open(new DirectShow.Binding.Filters.Capture.All(name.Authority, new DirectShow.Binding.Filters.SampleGrabber.Yuyv(new DirectShow.Binding.Filters.NullRenderer())
         {
             FuzzyMatch = this.Fuzzy
         }));
         if (built)
         {
             temporary.Play();
             System.Threading.Thread.Sleep(500);
         }
         temporary.Close();
         temporary = null;
         string filename = name.Query["video"];
         result          = new Graph.Live();
         result.Recorder = new DirectShow.Binding.Graph();
         if (result.Recorder.Open(new DirectShow.Binding.Filters.Capture.All(name.Authority, new DirectShow.Binding.Filters.SampleGrabber.Yuyv(new Filters.Encoder.Mpeg(new Filters.Multiplexer.Mpeg(new Filters.IO.Dump(filename)))))))
         {
             result.Recorder.Play();
             System.Threading.Thread.Sleep(2000);
             built = result.Open(new Filters.IO.Reader(filename, new Filters.Demultiplexer.Mpeg(new Filters.Decoder.Mpeg(new DirectShow.Binding.Filters.SampleGrabber.All()))));
             if (built)
             {
                 System.Threading.Thread.Sleep(1000);
                 result.Play();
             }
             else
             {
                 result.Close();
                 result = null;
             }
         }
         else
         {
             result.Close();
             result = null;
         }
     }
     return(result as DirectShow.Binding.IGraph);
 }
		protected override DirectShow.Binding.IGraph Open(Uri.Locator name)
		{
			Graph.Live result = null;
			if (name.Scheme == "directshow+capture" && name.Authority.NotNull() && name.Query.NotNull() && name.Query["video"].NotNull())
			{
				DirectShow.Binding.Graph temporary = new DirectShow.Binding.Graph();
				bool built = temporary.Open(new DirectShow.Binding.Filters.Capture.All(name.Authority, new DirectShow.Binding.Filters.SampleGrabber.Yuyv(new DirectShow.Binding.Filters.NullRenderer()) { FuzzyMatch = this.Fuzzy }));
				if (built)
				{
					temporary.Play();
					System.Threading.Thread.Sleep(500);
				}
				temporary.Close();
				temporary = null;
				string filename = name.Query["video"];
				result = new Graph.Live();
				result.Recorder = new DirectShow.Binding.Graph();
				if (result.Recorder.Open(new DirectShow.Binding.Filters.Capture.All(name.Authority, new DirectShow.Binding.Filters.SampleGrabber.Yuyv(new Filters.Encoder.Mpeg(new Filters.Multiplexer.Mpeg(new Filters.IO.Dump(filename)))))))
				{
					result.Recorder.Play();
					System.Threading.Thread.Sleep(2000);
					built = result.Open(new Filters.IO.Reader(filename, new Filters.Demultiplexer.Mpeg(new Filters.Decoder.Mpeg(new DirectShow.Binding.Filters.SampleGrabber.All()))));
					if (built)
					{
						System.Threading.Thread.Sleep(1000);
						result.Play();
					}
					else
					{
						result.Close();
						result = null;
					}
				}
				else
				{
					result.Close();
					result = null;
				}
			}
			return result as DirectShow.Binding.IGraph;
		}