From e3663040558f9e2999f210f496ed9d010579c1d8 Mon Sep 17 00:00:00 2001 From: arpi Date: Thu, 16 Aug 2001 18:27:03 +0000 Subject: error handling git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1559 b3059339-0415-0410-9bf9-f77b7e298cf2 --- loader/dshow/libwin32.h | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/loader/dshow/libwin32.h b/loader/dshow/libwin32.h index 26a3fbc792..592fe9d454 100644 --- a/loader/dshow/libwin32.h +++ b/loader/dshow/libwin32.h @@ -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 #include #include #include +#include #include +#include 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 @@ struct IVideoDecoder } 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) -- cgit v1.2.3