summaryrefslogtreecommitdiff
path: root/sys/dshowvideosink/dshowvideofakesrc.h
diff options
context:
space:
mode:
authorMichael Smith <msmith@songbirdnest.com>2009-02-04 17:50:51 -0800
committerMichael Smith <msmith@songbirdnest.com>2009-02-04 17:50:51 -0800
commit2e401cc71da0607966e3b5f31608d326e9819b3e (patch)
tree102648afe90412b93fc9b8bccfd5bde94330574b /sys/dshowvideosink/dshowvideofakesrc.h
parente3fcf51e2ca144a8d01dd76e84272f0375f2b158 (diff)
downloadgstreamer-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.h16
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__ */