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(); }
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); } } }