diff options
author | Michael Smith <msmith@songbirdnest.com> | 2009-02-04 17:50:51 -0800 |
---|---|---|
committer | Michael Smith <msmith@songbirdnest.com> | 2009-02-04 17:50:51 -0800 |
commit | 2e401cc71da0607966e3b5f31608d326e9819b3e (patch) | |
tree | 102648afe90412b93fc9b8bccfd5bde94330574b /sys/dshowvideosink/dshowvideofakesrc.h | |
parent | e3fcf51e2ca144a8d01dd76e84272f0375f2b158 (diff) | |
download | gstreamer-plugins-bad-2e401cc71da0607966e3b5f31608d326e9819b3e.tar.gz |
Handle many more edge cases in dshowvideosink.
Instrument various codepaths with debug messages.
Handle (as best as I could see how - it's pretty nasty) moving a video
window to another monitor.
Add listening for directshow events.
Diffstat (limited to 'sys/dshowvideosink/dshowvideofakesrc.h')
-rw-r--r-- | sys/dshowvideosink/dshowvideofakesrc.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/sys/dshowvideosink/dshowvideofakesrc.h b/sys/dshowvideosink/dshowvideofakesrc.h index a6b032432..ac2248da3 100644 --- a/sys/dshowvideosink/dshowvideofakesrc.h +++ b/sys/dshowvideosink/dshowvideofakesrc.h @@ -22,7 +22,7 @@ #include <streams.h> #include <gst/gst.h> -class VideoFakeSrcPin : public CBaseOutputPin +class VideoFakeSrcPin : public CDynamicOutputPin { protected: /* members */ @@ -41,11 +41,14 @@ public: virtual HRESULT CheckMediaType(const CMediaType *pmt); HRESULT GetMediaType(int iPosition, CMediaType *pMediaType); virtual HRESULT DecideBufferSize (IMemAllocator *pAlloc, ALLOCATOR_PROPERTIES *ppropInputRequest); + virtual HRESULT BreakConnect(); + virtual HRESULT CompleteConnect(IPin *pReceivePin); + virtual HRESULT Inactive(); STDMETHOD (SetMediaType) (AM_MEDIA_TYPE *pmt); STDMETHOD (Flush) (); STDMETHODIMP Notify(IBaseFilter * pSender, Quality q); - - + STDMETHODIMP Disconnect(); + STDMETHODIMP Block(DWORD dwBlockFlags, HANDLE hEvent); }; class VideoFakeSrc : public CBaseFilter @@ -55,6 +58,8 @@ private: CCritSec m_critsec; VideoFakeSrcPin *m_pOutputPin; + CAMEvent m_evFilterStoppingEvent; + public: /* methods */ VideoFakeSrc (void); @@ -65,6 +70,11 @@ public: /* Overrides */ int GetPinCount(); CBasePin *GetPin(int n); + + STDMETHODIMP Run(REFERENCE_TIME tStart); + STDMETHODIMP Stop(void); + STDMETHODIMP Pause(void); + STDMETHODIMP JoinFilterGraph(IFilterGraph* pGraph, LPCWSTR pName); }; #endif /* __DSHOWVIDEOFAKESRC_H__ */ |