Mercurial > mplayer.hg
view loader/dshow/DS_VideoDecoder.h @ 2384:814166bee8fd
3ivx YV12 direct rendering (one lss memcpy)
author | arpi |
---|---|
date | Mon, 22 Oct 2001 22:45:06 +0000 |
parents | da26060c81ef |
children | 24fa494bedb1 |
line wrap: on
line source
#ifndef AVIFILE_DS_VIDEODECODER_H #define AVIFILE_DS_VIDEODECODER_H #include <libwin32.h> #include <DS_Filter.h> class DS_VideoDecoder: public IVideoDecoder, public IRtConfig { public: DS_VideoDecoder(const CodecInfo& info, const BITMAPINFOHEADER& format, int flip); ~DS_VideoDecoder(); int SetDestFmt(int bits = 24, fourcc_t csp = 0); CAPS GetCapabilities() const {return m_Caps;} int DecodeInternal(void* src, size_t size, int is_keyframe, CImage* pImage); void StartInternal(); void StopInternal(); //void Restart(); int SetDirection(int d) { m_obh.biHeight = d ? m_bh->biHeight : -m_bh->biHeight; m_sVhdr2->bmiHeader.biHeight = m_obh.biHeight; return 0; } // IRtConfig interface virtual HRESULT GetValue(const char*, int&); virtual HRESULT SetValue(const char*, int); protected: DS_Filter* m_pDS_Filter; AM_MEDIA_TYPE m_sOurType, m_sDestType; VIDEOINFOHEADER* m_sVhdr; VIDEOINFOHEADER* m_sVhdr2; CAPS m_Caps; // capabilities of DirectShow decoder int m_iLastQuality; // remember last quality as integer bool m_bIsDivX; // for speed }; #endif /* AVIFILE_DS_VIDEODECODER_H */