📄 filtervideokeyer.h
字号:
//
// CFilterVideoKeyer.h
//
#ifndef __H_CFilterVideoKeyer__
#define __H_CFilterVideoKeyer__
#include "IVideoKeyer.h"
#include "CVideoMixController.h"
class CBranchInputPin;
class CFilterVideoKeyer : public CTransInPlaceFilter
, public IVideoKeyer
{
friend class CBranchInputPin;
private:
CBranchInputPin * mMixingInput;
CVideoMixController mController;
private:
CFilterVideoKeyer(TCHAR *tszName, LPUNKNOWN punk, HRESULT *phr);
~CFilterVideoKeyer();
public:
static CUnknown * WINAPI CreateInstance(LPUNKNOWN punk, HRESULT *phr);
DECLARE_IUNKNOWN;
// Basic COM - used here to reveal our own interfaces
STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void ** ppv);
virtual int GetPinCount();
virtual CBasePin *GetPin(int n);
// default behaviour of FindPin assumes pin ids are their names
STDMETHODIMP FindPin(LPCWSTR Id, IPin ** ppPin);
HRESULT CompleteConnect(PIN_DIRECTION direction,IPin *pReceivePin);
// check if you can support mtIn
virtual HRESULT CheckInputType(const CMediaType* mtIn); // PURE
virtual HRESULT Transform(IMediaSample *pSample); // PURE
STDMETHODIMP Stop();
virtual HRESULT StartStreaming();
virtual HRESULT EndOfStream(void);
BOOL IsSupportedRGB(const CMediaType* mtIn);
// --- IVideoKeyer methods ---
STDMETHODIMP get_ConnectedMediaType(CMediaType * outMainType,
CMediaType * outMixingType);
STDMETHODIMP put_DetectType(DETECT_TYPE inType);
STDMETHODIMP get_DetectType(DETECT_TYPE * outType);
STDMETHODIMP put_BackgroundColor(BYTE inRed, BYTE inGreen, BYTE inBlue);
STDMETHODIMP get_BackgroundColor(BYTE * outRed, BYTE * outGreen, BYTE * outBlue);
};
#endif // __H_CFilterVideoKeyer__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -