MultiIOInputPin.h

Go to the documentation of this file.
00001 
00034 #pragma once
00035 
00036 #pragma warning(push)     // disable for this header only
00037 #pragma warning(disable:4312)
00038 // DirectShow
00039 #include <streams.h>
00040 #pragma warning(pop)      // restore original warning level
00041 
00042 class CMultiIOInputPin : public CBaseInputPin
00043 {
00044         friend class CMultiIOBaseFilter;
00045         friend class CMultiIOOutputPin;
00046 
00047 public:
00048         CMultiIOInputPin(CMultiIOBaseFilter* pFilter, CCritSec* pLock, HRESULT* phr, LPCWSTR pName, int nIndex);
00049         virtual ~CMultiIOInputPin(void);
00050 
00051         // lifetime management for pins is normally delegated to the filter, but
00052         // we need to be able to create and delete them independently, so keep 
00053         // a separate refcount.
00054         STDMETHODIMP_(ULONG) NonDelegatingRelease()
00055         {
00056                 return CUnknown::NonDelegatingRelease();
00057         }
00058         STDMETHODIMP_(ULONG) NonDelegatingAddRef()
00059         {
00060                 return CUnknown::NonDelegatingAddRef();
00061         }
00062 
00063         // check that we can support this output type
00064         HRESULT CheckMediaType(const CMediaType* mtIn);
00065 
00066         // connection management -- used to maintain one free pin
00067         HRESULT BreakConnect();
00068         HRESULT CompleteConnect(IPin *pReceivePin);
00069 
00070         // do something with this media sample
00071         STDMETHODIMP Receive(IMediaSample *pSample);
00072 
00073         CMediaType& CurrentMediaType() { return m_mt; };
00074 
00075         // set the connection media type
00076         HRESULT SetMediaType(const CMediaType* mt);
00077 
00078         // Pass through calls downstream
00079         STDMETHODIMP EndOfStream();
00080         STDMETHODIMP BeginFlush();
00081         STDMETHODIMP EndFlush();
00082         STDMETHODIMP NewSegment(
00083                 REFERENCE_TIME tStart,
00084                 REFERENCE_TIME tStop,
00085                 double dRate);
00086 protected:
00087         CMultiIOBaseFilter* m_pFilter;
00088         int m_nIndex;
00089 };

Generated on Fri Mar 13 14:12:38 2009 for RTVC by  doxygen 1.5.3