summaryrefslogtreecommitdiff
path: root/osd.h
diff options
context:
space:
mode:
authorAndreas Regel <andreas.regel@powarman.de>2004-01-28 19:11:00 +0100
committerAndreas Regel <andreas.regel@powarman.de>2004-01-28 19:11:00 +0100
commit64fe6b70d0a5b34a80ff458fbf1664018d5c0182 (patch)
tree4fe036adaf90fef0d0dc910b84dbc11269e40008 /osd.h
parent310f5b2a62343d0c9b7624c09efe35828785ef26 (diff)
downloadvdr-plugin-osdpip-0.0.3.tar.gz
vdr-plugin-osdpip-0.0.3.tar.bz2
Release version 0.0.3v0.0.3
- new TS->ES remuxer: now using VDR's cRemux for TS->PES and some own code for PES->ES - now using libavcodec from ffmpeg instead of mpeg2dec - frames to decode configurable (I-frames, I-/P-frames, all frames) - frame dropping configurable - added new color depths: - 128 shades greyscale - 128 colors with variable palette using Wu's quantizer (patch needed) - changed osd size setting to 6 configurable values
Diffstat (limited to 'osd.h')
-rw-r--r--osd.h45
1 files changed, 38 insertions, 7 deletions
diff --git a/osd.h b/osd.h
index a43d6b6..5b30ca1 100644
--- a/osd.h
+++ b/osd.h
@@ -1,22 +1,34 @@
+/*
+ * OSD Picture in Picture plugin for the Video Disk Recorder
+ *
+ * See the README file for copyright information and how to reach the author.
+ */
+
#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 <vdr/osd.h>
#include <vdr/thread.h>
+#include <vdr/status.h>
#include <vdr/receiver.h>
-extern "C" {
-#include <mpeg2dec/mpeg2.h>
-#include <mpeg2dec/mpeg2convert.h>
-};
-
-class cRingBufferLinear;
+class cRingBufferFrame;
class cOsdPipReceiver;
+class cQuantize;
class cOsdPipObject: public cOsdObject, public cThread {
private:
cOsdBase *m_Osd;
- cRingBufferLinear *m_ESBuffer;
+ cRingBufferFrame *m_ESBuffer;
cOsdPipReceiver *m_Receiver;
const cChannel *m_Channel;
tWindowHandle m_Window;
@@ -25,7 +37,26 @@ private:
bool m_Active;
bool m_Ready;
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;
+
+ cQuantize * quantizer;
+ int Decode(unsigned char * data, int length);
+ int Resample();
+ int ConvertToRGB();
+ void ProcessImage(unsigned char * data, int length);
protected:
virtual void Action(void);