예제 #1
0
        private void Initialize(string path, bool enableReclock, bool enableMadvr, bool enableXySubFilter, bool isDvd)
        {
            InitializeGraph();

            int hr = 0;

            if (!isDvd)
            {
                hr = m_graph.AddSourceFilter(path, path, out _pSource);
                DsError.ThrowExceptionForHR(hr);

                // Try to render the streams.
                RenderStreams(_pSource, enableReclock, enableMadvr, enableXySubFilter);
            }
            else
            {
                _logger.Debug("Initializing dvd player to play {0}", path);

                /* Create a new DVD Navigator. */
                _dvdNav = (DirectShowLib.IBaseFilter) new DVDNavigator();

                InitializeDvd(path);

                // Try to render the streams.
                RenderStreams(_dvdNav, enableReclock, enableMadvr, enableXySubFilter);
            }

            // Get the seeking capabilities.
            hr = _mediaSeeking.GetCapabilities(out _mSeekCaps);
            DsError.ThrowExceptionForHR(hr);
        }