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

📄 videoinputdshow.h

📁 VideoMan is a very easy image acquisition library. It is able to manage many video inputs at the sam
💻 H
字号:
#pragma once
#include "VideoInput.h"

#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__

#include "Qedit.h"
#include <streams.h>
//#include <objbase.h>
//#include <atlcomcli.h>	// CComPtr
//#include <atlbase.h>
//#include <process.h>
#include <comutil.h>	// _bstr_t
#include <deque>

class VideoInputDShow :
	public ISampleGrabberCB
{
public:
	VideoInputDShow(void);
	virtual ~VideoInputDShow(void);



//// ISampleGrabberCB interface methods -----------------
public:
	//IUnknown interface
	HRESULT WINAPI QueryInterface( REFIID iid, void** ppvObject );
	ULONG WINAPI AddRef();
	ULONG WINAPI Release();

	// ISampleGrabberCB interfaces
	HRESULT WINAPI SampleCB(double SampleTime, IMediaSample *pSample);
	HRESULT WINAPI BufferCB(double sampleTimeSec, BYTE* bufferPtr, long bufferLength);
private:
	unsigned long	fRefCount;
///// ---------------------------------------------------

protected:

	HRESULT initDirectShow(void);
	HRESULT freeDirectShow(void);
	HRESULT stopMedia();
	HRESULT EnableMemoryBuffer(unsigned int _maxConcurrentClients = 1,
                              unsigned int _allocatorBuffersPerClient = 5);
	HRESULT findMediaType(IPin *pin, VideoManInputFormat *requestedFormat, AM_MEDIA_TYPE *requestedMT );
	HRESULT findOneMediaType(IPin *pin, AM_MEDIA_TYPE *requestedMT );
	HRESULT findCaptureDevice( IBaseFilter ** ppSrcFilter, std::string &friendlyName, std::string &devicePath );
	
	IGraphBuilder *pGB;
	ICaptureGraphBuilder2 *pCGB;
	IMediaSeeking *pMS;
	IMediaControl *pMC;
	//IMediaPosition *pMP;	
	//IBasicVideo   *pBV;
	IBaseFilter   *pSG;
	ISampleGrabber *sampleGrabber;
	IBaseFilter *videoSource;

	#ifdef _DEBUG
		DWORD dwRegisterROT;
	#endif

	CCritSec m_CSec;

	IMediaSample* mediaSample;

	bool dropFrames;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -