[Mplayer-cvslog] CVS: main/loader/DirectShow libwin32.h,1.2,1.3

Arpi of Ize arpi at mplayer.dev.hu
Thu Aug 16 20:27:05 CEST 2001


Update of /cvsroot/mplayer/main/loader/DirectShow
In directory mplayer:/var/tmp.root/cvs-serv1751

Modified Files:
	libwin32.h 
Log Message:
error handling

Index: libwin32.h
===================================================================
RCS file: /cvsroot/mplayer/main/loader/DirectShow/libwin32.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- libwin32.h	16 Aug 2001 15:41:03 -0000	1.2
+++ libwin32.h	16 Aug 2001 18:27:03 -0000	1.3
@@ -26,17 +26,28 @@
 #else
 // code for mplayer team
 
-#define FATAL(a)  // you don't need exception - if you want - just fill more code
+//#define FATAL(a)  // you don't need exception - if you want - just fill more code
+#define FATAL(X...) FatalError(__MODULE__,__FILE__,__LINE__,X)
 #include <wine/mmreg.h>
 #include <wine/winreg.h>
 #include <wine/vfw.h>
 #include <com.h>
+#include <stdarg.h>
 #include <string>
+#include <stdio.h>
 
 typedef unsigned int fourcc_t;
+
 struct FatalError
 {
-    FatalError();
+    FatalError(const char* mod, const char* f, int l, const char* desc,...)
+    {
+	printf("FATAL: module: %s  source: %s line %d ", mod, f, l);
+	va_list va;
+	va_start(va, desc);
+	vprintf(desc, va);
+	va_end(va);
+    }
     void PrintAll() {}
 };
 
@@ -277,10 +288,15 @@
 
     }
     virtual ~IVideoDecoder(){};
-    virtual void StartInternal()=0;
-    virtual void StopInternal()=0;
+    // use this one
+    int Decode(void* src, size_t size, int is_keyframe, CImage* pImage)
+    { return DecodeInternal(src, size, is_keyframe, pImage); }
     void Stop(){ StopInternal();  m_State = STOP;}
     void Start(){StartInternal(); m_State = START;}
+    protected:
+    virtual int DecodeInternal(void* src, size_t size, int is_keyframe, CImage* pImage) = 0;
+    virtual void StartInternal()=0;
+    virtual void StopInternal()=0;
 
     const CodecInfo& record;
     DecodingMode m_Mode;	// should we do precaching (or even change Quality on the fly)




More information about the MPlayer-cvslog mailing list