private void Config2()
        {
            int           hr;
            IFilterGraph2 fg;
            ISBE2Crossbar iSBE2Crossbar;

            fg = new FilterGraph() as IFilterGraph2;
            IBaseFilter streamBuffer = (IBaseFilter) new StreamBufferSource();

            m_ge2 = streamBuffer as ISBE2GlobalEvent2;
            m_mc  = fg as IMediaControl;

            hr = fg.AddFilter(streamBuffer, "SBS");
            DsError.ThrowExceptionForHR(hr);

            IFileSourceFilter fs = streamBuffer as IFileSourceFilter;

            hr = fs.Load(@"C:\Users\Public\Recorded TV\Sample Media\win7_scenic-demoshort_raw.wtv", null);
            DsError.ThrowExceptionForHR(hr);

            iSBE2Crossbar = streamBuffer as ISBE2Crossbar;
            hr            = iSBE2Crossbar.EnableDefaultMode(CrossbarDefaultFlags.None);
            DsError.ThrowExceptionForHR(hr);

            HookupGraphEventService(fg);
            RegisterForSBEGlobalEvents();
        }
Beispiel #2
0
        private void SetupGraph2()
        {
            int hr;

            // Get a ICaptureGraphBuilder2 to help build the graph
            ICaptureGraphBuilder2 icgb2 = (ICaptureGraphBuilder2)new CaptureGraphBuilder2();

            try
            {
                // Get the graphbuilder object
                IFilterGraph2 graphBuilder2 = (IFilterGraph2)new FilterGraph();
                m_imc2 = graphBuilder2 as IMediaControl;

                // Link the ICaptureGraphBuilder2 to the IFilterGraph2
                hr = icgb2.SetFiltergraph(graphBuilder2);
                DsError.ThrowExceptionForHR(hr);

                IBaseFilter streamBuffer = (IBaseFilter)new StreamBufferSource();

                hr = graphBuilder2.AddFilter(streamBuffer, "Stream buffer sink");
                DsError.ThrowExceptionForHR(hr);

                IFileSourceFilter sbfsf = (IFileSourceFilter)streamBuffer;

                hr = sbfsf.Load(Environment.ExpandEnvironmentVariables(FILENAME), null);
                DsError.ThrowExceptionForHR(hr);

                RenderPins(streamBuffer, icgb2);

                m_cb = streamBuffer as ISBE2Crossbar;
                ISBE2GlobalEvent2 ge2 = streamBuffer as ISBE2GlobalEvent2;
            }
            finally
            {
                if (icgb2 != null)
                {
                    Marshal.ReleaseComObject(icgb2);
                }
            }
        }