#ifndef NULLSOFT_IN_DSHOW_CWAVIDEORENDERERH
#define NULLSOFT_IN_DSHOW_CWAVIDEORENDERERH

#include "audioswitch.h"
#include "CSampleCB.h"


EXTERN_C GUID DECLSPEC_SELECTANY CLSID_WAVideoRend =
  {0x2fa4f053, 0x6d60, 0x4cb0, {0x95, 0x3, 0x8e, 0x89, 0x23, 0x4f, 0xca, 0xca}};


class CWAVideoRenderer : public CBaseRenderer
{
public:
	CWAVideoRenderer();
	virtual ~CWAVideoRenderer();
	HRESULT DoRenderSample(IMediaSample *pMediaSample);
	HRESULT CheckMediaType(const CMediaType *pmt);
	HRESULT SetMediaType(const CMediaType *pmt);
	CMediaType *GetAcceptedType();
	HRESULT SetCallback(CSampleCB *Callback);
	HRESULT ShouldDrawSampleNow(IMediaSample *pMediaSample, REFERENCE_TIME *pStartTime, REFERENCE_TIME *pEndTime);
	HRESULT GetSampleTimes(IMediaSample *pMediaSample, REFERENCE_TIME *pStartTime, REFERENCE_TIME *pEndTime);
	HRESULT EndOfStream(void);

private:
	CSampleCB *m_callback;
	CMediaType m_mt;
	int m_reent;
};

#endif