protected override DirectShow.Binding.IGraph Open(Uri.Locator name) { DirectShow.Binding.IGraph result = null; if (name.Scheme == "directshow+capture" && name.Authority.NotNull() && name.Query["video"].IsEmpty()) { 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; result = new DirectShow.Binding.Graph(); built = result.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) { result.Play(); System.Threading.Thread.Sleep(500); result.Close(); built = result.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) result.Play(); else { result.Close(); result = null; } } return result; }
protected override DirectShow.Binding.IGraph Open(Uri.Locator name) { DirectShow.Binding.IGraph result = null; if (name.Scheme == "directshow+capture" && name.Authority.NotNull() && name.Query["video"].IsEmpty()) { 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; result = new DirectShow.Binding.Graph(); built = result.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) { result.Play(); System.Threading.Thread.Sleep(500); result.Close(); built = result.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) { result.Play(); } else { result.Close(); result = null; } } return(result); }