⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filtervideokeyer.h

📁 最近在学习directshow, Directshow实务精选的源代码
💻 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 + -