public override bool Build(DirectShowLib.IPin source, Imint.Media.DirectShow.Binding.IBuild build) { bool result = false; DirectShowLib.IBaseFilter filter = this.Create(); if (filter.NotNull() && build.Graph.AddFilter(filter, this.Description) == 0) { foreach (DirectShow.Binding.Filters.Abstract candidate in this.Next) if (result = candidate.Build(filter, build)) break; } else { Error.Log.Append(Error.Level.Debug, "Unable to open file.", "DirectShow was unable to open file \"" + this.file + "\"."); Binding.Exception.GraphError.Check(build.Graph.RemoveFilter(filter)); } return result; }
protected override Imint.Viewer.Cache[] UpdateCaches(Imint.Viewer.Cache[] caches, Kean.Collection.IReadOnlyDictionary<string, object> meta) { return caches; }