Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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();
 }