diff options
Diffstat (limited to 'osd.h')
-rw-r--r-- | osd.h | 43 |
1 files changed, 18 insertions, 25 deletions
@@ -7,15 +7,6 @@ #ifndef VDR_OSDPIP_OSD_H #define VDR_OSDPIP_OSD_H -extern "C" -{ -#ifdef HAVE_FFMPEG_STATIC -# include <avcodec.h> -#else -# include <ffmpeg/avcodec.h> -#endif -} - #include <sys/time.h> #include <vdr/osd.h> @@ -23,53 +14,55 @@ extern "C" #include <vdr/status.h> #include <vdr/receiver.h> +#include "decoder.h" + class cRingBufferFrame; class cOsdPipReceiver; class cQuantize; class cOsdPipObject: public cOsdObject, public cThread, public cStatus { private: +#if VDRVERSNUM >= 10307 + cOsd *m_Osd; +#else cOsdBase *m_Osd; + tWindowHandle m_Window; + tWindowHandle m_WindowInfo; +#endif cRingBufferFrame *m_ESBuffer; cOsdPipReceiver *m_Receiver; const cChannel *m_Channel; - tWindowHandle m_Window; cBitmap * m_Bitmap; - tWindowHandle m_WindowInfo; cBitmap * m_BitmapInfo; +#if VDRVERSNUM >= 10307 + int m_InfoX; + int m_InfoY; +#endif time_t m_ShowTime; bool m_ShowInfo; bool m_Active; bool m_Ready; +#if VDRVERSNUM >= 10307 + bool m_Reset; +#endif int m_Width, m_Height; int m_FrameDrop; - AVCodec * m_Codec; - AVCodecContext * m_Context; - AVFrame * m_PicDecoded; - AVFrame * m_PicResample; - AVFrame * m_PicConvert; - unsigned char * m_BufferResample; - unsigned char * m_BufferConvert; - unsigned int m_AlphaBase; unsigned int m_Palette[256]; int m_PaletteStart; - unsigned char m_PaletteLookup[256]; + cDecoder decoder; cQuantize * quantizer; - int Decode(unsigned char * data, int length); - int Resample(); - int ConvertToRGB(); void ProcessImage(unsigned char * data, int length); - void ShowChannelInfo(const cChannel * channel); + void ShowChannelInfo(const cChannel * channel, bool show = true); protected: virtual void Action(void); - virtual void ChannelSwitch(const cDevice * device, int channelNumber); + virtual void ChannelSwitch(const cDevice * device, int channelNumber); public: cOsdPipObject(cDevice *Device, const cChannel *Channel); |