public DvdSource(DvdSourceFilter dvdSourceFilter, IGraphBuilder graph, string filename) { m_Filter = dvdSourceFilter.CreateInstance(); m_Splitter = (IBaseFilter) new LavSplitter(); var sourceFilter = (IFileSourceFilter)m_Filter; DsError.ThrowExceptionForHR(sourceFilter.Load(filename, null)); DsError.ThrowExceptionForHR(graph.AddFilter(m_Filter, "DVD Source Filter")); DsError.ThrowExceptionForHR(graph.AddFilter(m_Splitter, "LAV Splitter")); var outpins = GetPins(m_Filter, "Output"); ConnectPins(graph, outpins[0], m_Splitter, "Input"); VideoOutputPin = DsFindPin.ByName(m_Splitter, "Video"); AudioOutputPin = DsFindPin.ByName(m_Splitter, "Audio"); SubtitleOutputPins = GetPins(m_Splitter, "Subtitle"); ExtendedSeeking = (IAMExtendedSeeking)m_Splitter; VideoStreamSelect = (IAMStreamSelect)m_Splitter; AudioStreamSelect = (IAMStreamSelect)m_Splitter; SubtitleStreamSelect = null; }
public override void Initialize() { m_DvdSourceFilter = new DvdSourceFilter(); Media.Loading += OnMediaLoading; }