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

📄 cfiltermpeg2vd.h

📁 DIRECTSHOW 开发指南电子书
💻 H
字号:
//
// CFilterMpeg2VD.h
//

#ifndef __H_CFilterMpeg2VD__
#define __H_CFilterMpeg2VD__

#include "IMpeg2VD.h"
#include "CMpegController.h"

class CFilterMpeg2VD : public CSource
				//   , public ISpecifyPropertyPages
{
	friend class CMpegInputPin;
	friend class CDecodedStream;

private:
	CMpegInputPin *    mMpegInputPin;

	CCritSec           m_csReceive;
	CMpegController    mMpegController;	
	
	BOOL               mIsFlushing;
	BOOL               mEOSDelivered;
	BOOL               mEOSReceived;

	// Bitmap infomation
	LONG               mImageWidth;
	LONG               mImageHeight;
	LONG               mOutputImageSize;
	REFERENCE_TIME     mSampleDuration;

private:
	CFilterMpeg2VD(TCHAR *tszName, LPUNKNOWN punk, HRESULT *phr);
	~CFilterMpeg2VD();

	CDecodedStream * OutputPin() {return (CDecodedStream *) m_paStreams[0];};

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);

	// you need to supply these to access the pins from the enumerator
    // and for default Stop and Pause/Run activation.
    virtual int GetPinCount();
    virtual CBasePin *GetPin(int n);
	STDMETHODIMP FindPin(LPCWSTR Id, IPin ** ppPin);

	STDMETHODIMP Stop();
	STDMETHODIMP Pause();
	HRESULT StartStreaming();
	HRESULT StopStreaming();

	// Input pin's delegating methods
	HRESULT Receive(IMediaSample *pSample);
	// if you override Receive, you may need to override these three too
	HRESULT EndOfStream(void);
	HRESULT BeginFlush(void);
	HRESULT EndFlush(void);
	HRESULT NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);

	// Output pin's delegating methods
	HRESULT CompleteConnect(PIN_DIRECTION inDirection, IPin * inReceivePin);

	// --- ISpecifyPropertyPages ---
//	STDMETHODIMP GetPages(CAUUID *pPages);
};

#endif // __H_CFilterMpeg2VD__

⌨️ 快捷键说明

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