www.pudn.com > FilterTSSource.rar > CTSOutPin.h


// 
// CTSOutPin.h 
//  
 
#ifndef __H_CTSOutPin__ 
#define __H_CTSOutPin__ 
 
#define SAMPLE_SIZE 1880 
 
#include  
 
class CFilterTSSource; 
class CTSOutPin : public CSourceStream 
{ 
	friend class CFilterTSSource; 
 
protected: 
	CFilterTSSource *	mFilter; 
	CCritSec			mSharedState; 
	char				mFilePath[MAX_PATH]; 
	FILE *				m_fp; 
	CMediaType			mPreferred;	 
	LONGLONG			mSampleCount; 
 
#define _DUMP_SENT 
 
#ifdef _DUMP_SENT 
	FILE * m_fpDebug; 
#endif 
 
public: 
	BOOL SetFileSource(const char * inFile); 
	void GetFileSource(char * outFile); 
 
public: 
	CTSOutPin(HRESULT *phr, CFilterTSSource * pFilter, LPCWSTR pPinName); 
	~CTSOutPin(); 
 
	STDMETHODIMP QueryId(LPWSTR * Id); 
	// Pure methods 
	virtual HRESULT FillBuffer(IMediaSample * pSample); 
	virtual HRESULT DecideBufferSize(IMemAllocator *pAlloc, ALLOCATOR_PROPERTIES *pProperties); 
	virtual HRESULT CheckMediaType(const CMediaType * inMediatype); 
 
	virtual HRESULT Active(void); 
	HRESULT GetMediaType(int iPosition, CMediaType *pmt); 
 
	// Quality control notifications sent to us 
	STDMETHODIMP Notify(IBaseFilter * pSender, Quality q); 
	virtual HRESULT OnThreadStartPlay(void); 
}; 
 
#endif // __H_CTSOutPin__