diff loader/dshow/DS_VideoDecoder.h @ 1545:da26060c81ef

big avifile sync - from now we have common code
author arpi
date Thu, 16 Aug 2001 00:50:02 +0000
parents
children 24fa494bedb1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loader/dshow/DS_VideoDecoder.h	Thu Aug 16 00:50:02 2001 +0000
@@ -0,0 +1,37 @@
+#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 */