Mercurial > mplayer.hg
changeset 1558:261f5fd2c909
error handling
author | arpi |
---|---|
date | Thu, 16 Aug 2001 18:27:03 +0000 |
parents | 97767a45c03d |
children | 241ea640d1c3 |
files | loader/dshow/libwin32.h |
diffstat | 1 files changed, 20 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/loader/dshow/libwin32.h Thu Aug 16 16:43:22 2001 +0000 +++ b/loader/dshow/libwin32.h Thu Aug 16 18:27:03 2001 +0000 @@ -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(){}; + // 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; - void Stop(){ StopInternal(); m_State = STOP;} - void Start(){StartInternal(); m_State = START;} const CodecInfo& record; DecodingMode m_Mode; // should we do precaching (or even change Quality on the fly)