summaryrefslogtreecommitdiff
path: root/osd.h
diff options
context:
space:
mode:
Diffstat (limited to 'osd.h')
-rw-r--r--osd.h43
1 files changed, 18 insertions, 25 deletions
diff --git a/osd.h b/osd.h
index 7216b79..7388ada 100644
--- a/osd.h
+++ b/osd.h
@@ -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);