private void Config() { int hr; IMediaStream ms; IMediaStream ms2 = null; IAMMultiMediaStream mms = (IAMMultiMediaStream) new AMMultiMediaStream(); IAMMediaTypeStream amts = (IAMMediaTypeStream) new AMMediaTypeStream(); AMMediaType pmt = new AMMediaType(); pmt.majorType = MediaType.Video; //hr = mms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, null); //MsError.ThrowExceptionForHR(hr); //pmt = null; //hr = amts.GetFormat(pmt, 0); //hr = amts.SetFormat(pmt, 0); hr = mms.AddMediaStream(amts, null, AMMStream.None, ms2); MsError.ThrowExceptionForHR(hr); hr = mms.EnumMediaStreams(0, out ms); MsError.ThrowExceptionForHR(hr); m_mts = ms as IAMMediaTypeStream; }
private void Config() { int hr; IMediaStream ms; IAMMediaTypeStream mts; IMediaStream ms2 = null; IAMMultiMediaStream mms = (IAMMultiMediaStream) new AMMultiMediaStream(); IAMMediaTypeStream amts = (IAMMediaTypeStream) new AMMediaTypeStream(); IAMMediaTypeSample mtp; //AMMediaType pmt = new AMMediaType(); //pmt.majorType = MediaType.Video; // hr = amts.SetFormat(pmt, 0); // MsError.ThrowExceptionForHR(hr); hr = mms.Initialize(StreamType.Write, AMMMultiStream.None, null); hr = mms.AddMediaStream(amts, null, AMMStream.None, ms2); MsError.ThrowExceptionForHR(hr); hr = mms.EnumMediaStreams(0, out ms); MsError.ThrowExceptionForHR(hr); mts = ms as IAMMediaTypeStream; hr = mts.CreateSample(100, IntPtr.Zero, 0, null, out mtp); MsError.ThrowExceptionForHR(hr); m_ss = mtp as IStreamSample; hr = mms.SetState(StreamState.Run); MsError.ThrowExceptionForHR(hr); }
private void TestJoinIAM() { int hr; IAMMultiMediaStream mms = (IAMMultiMediaStream) new AMMultiMediaStream(); hr = m_aStream.JoinAMMultiMediaStream(mms); DsError.ThrowExceptionForHR(hr); }
private void Config() { int hr; IMediaStream pStream = null; IAMMultiMediaStream mms = (IAMMultiMediaStream) new AMMultiMediaStream(); hr = mms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, pStream); MsError.ThrowExceptionForHR(hr); hr = mms.GetFilter(out m_msf); MsError.ThrowExceptionForHR(hr); hr = mms.OpenFile("foo.avi", AMOpenModes.RenderAllStreams); MsError.ThrowExceptionForHR(hr); }
private void TestStateAndEOS() { int hr; IntPtr pEOS; StreamState pState; ManualResetEvent mre = new ManualResetEvent(false); //////////////// /// The AddMediaStream does something that prevents playback (I don't /// know what). Create a new stream to do the actual run. IAMMultiMediaStream amms = (IAMMultiMediaStream) new AMMultiMediaStream(); hr = amms.OpenFile("foo.avi", AMOpenModes.RenderAllStreams); MsError.ThrowExceptionForHR(hr); IMultiMediaStream mms = amms as IMultiMediaStream; //////////////// hr = mms.GetEndOfStreamEventHandle(out pEOS); MsError.ThrowExceptionForHR(hr); mre.SafeWaitHandle = new Microsoft.Win32.SafeHandles.SafeWaitHandle(pEOS, true); hr = mms.Seek(0); MsError.ThrowExceptionForHR(hr); hr = mms.GetState(out pState); MsError.ThrowExceptionForHR(hr); Debug.Assert(pState == StreamState.Stop, "GetState"); hr = mms.SetState(StreamState.Run); MsError.ThrowExceptionForHR(hr); hr = mms.GetState(out pState); MsError.ThrowExceptionForHR(hr); Debug.Assert(pState == StreamState.Run, "GetState2"); bool b = mre.WaitOne(1000 * 6, false); Debug.Assert(b, "WaitOne"); mre.Close(); Marshal.ReleaseComObject(mms); }
private void Config2() { int hr; IAMMultiMediaStream mms = (IAMMultiMediaStream) new AMMultiMediaStream(); IMediaStream pStream = null; hr = mms.Initialize(StreamType.Read, AMMMultiStream.None, null); MsError.ThrowExceptionForHR(hr); hr = mms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, pStream); MsError.ThrowExceptionForHR(hr); hr = mms.EnumMediaStreams(0, out pStream); MsError.ThrowExceptionForHR(hr); m_ams = pStream as IAudioMediaStream; }
private void Config() { int hr; m_mms = (IAMMultiMediaStream) new AMMultiMediaStream(); hr = m_mms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, null); MsError.ThrowExceptionForHR(hr); hr = m_mms.AddMediaStream(null, MSPID.PrimaryVideo, AMMStream.None, null); MsError.ThrowExceptionForHR(hr); hr = m_mms.EnumMediaStreams(0, out m_ms); MsError.ThrowExceptionForHR(hr); hr = m_mms.EnumMediaStreams(1, out m_ms2); MsError.ThrowExceptionForHR(hr); }
private void Config() { int hr; IAMMultiMediaStream amms = (IAMMultiMediaStream) new AMMultiMediaStream(); IMultiMediaStream mms = (IMultiMediaStream)amms; IMediaStream pStream = null; hr = amms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, pStream); MsError.ThrowExceptionForHR(hr); hr = amms.OpenFile("foo.avi", AMOpenModes.RenderAllStreams); MsError.ThrowExceptionForHR(hr); hr = mms.EnumMediaStreams(0, out pStream); MsError.ThrowExceptionForHR(hr); m_ams = pStream as IAudioMediaStream; }
private void Config() { int hr; IMediaStream pStream = null; IAMMultiMediaStream amms = (IAMMultiMediaStream) new AMMultiMediaStream(); hr = amms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, pStream); MsError.ThrowExceptionForHR(hr); hr = amms.OpenFile("foo.avi", AMOpenModes.RenderAllStreams); MsError.ThrowExceptionForHR(hr); IGraphBuilder pGraphBuilder; hr = amms.GetFilterGraph(out pGraphBuilder); MsError.ThrowExceptionForHR(hr); DsROTEntry rot = new DsROTEntry(pGraphBuilder); m_mms = (IMultiMediaStream)amms; }
public int Terminate() { int hr = MSStatus.MS_S_FALSE; if (IsValid) { _pGB = null; Marshal.FinalReleaseComObject(_pMMS); _pMMS = null; } hr = MSStatus.MS_S_OK; return hr; }
public int Initialize(STREAM_TYPE streamType, int dwFlags, IGraphBuilder pFilterGraph) { if (IsValid) { throw new InvalidOperationException("Instance is already active."); } AMMultiMediaStream amms = new AMMultiMediaStream(); _pMMS = (IAMMultiMediaStream)amms; int hr = _pMMS.Initialize(streamType, dwFlags, pFilterGraph); if (hr == MSStatus.MS_S_OK) { hr = _pMMS.GetFilterGraph(out _pGB); } return hr; }
private void Config() { m_mms = (IAMMultiMediaStream) new AMMultiMediaStream(); }