diff -Nru osdpip-0.0.8/Makefile osdpip-0.0.8-patch-divers/Makefile --- osdpip-0.0.8/Makefile 2008-04-13 20:26:46.000000000 +0200 +++ osdpip-0.0.8-patch-divers/Makefile 2008-04-13 20:21:35.000000000 +0200 @@ -16,7 +16,7 @@ ### The C++ compiler and options: CXX ?= g++ -CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual +CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual ### The directory environment: @@ -41,8 +41,8 @@ ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include -I. -I$(FFMDIR)/libavcodec -LIBS = -L$(FFMDIR)/libavcodec -lavcodec +INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include -I. `ffmpeg-config --cflags` +LIBS = `ffmpeg-config --plugin-libs avcodec` DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' DEFINES += -D_GNU_SOURCE diff -Nru osdpip-0.0.8/osd.c osdpip-0.0.8-patch-divers/osd.c --- osdpip-0.0.8/osd.c 2005-05-14 20:35:00.000000000 +0200 +++ osdpip-0.0.8-patch-divers/osd.c 2008-04-13 20:23:56.000000000 +0200 @@ -71,7 +71,11 @@ if (chan) { Stop(); Channels.SwitchTo(m_Channel->Number()); +#if APIVERSNUM >= 10500 + cDevice *dev = cDevice::GetDevice(chan, 1, false); +#else cDevice *dev = cDevice::GetDevice(chan, 1); +#endif if (dev) { DELETENULL(m_Receiver); m_Channel = chan; @@ -440,6 +444,8 @@ { switch (Key & ~k_Repeat) { + case kNone: + return osContinue; case k0: Channels.SwitchTo(m_Channel->Number()); case kBack: diff -Nru osdpip-0.0.8/osd_info.c osdpip-0.0.8-patch-divers/osd_info.c --- osdpip-0.0.8/osd_info.c 2005-05-15 12:48:38.000000000 +0200 +++ osdpip-0.0.8-patch-divers/osd_info.c 2008-04-13 20:22:03.000000000 +0200 @@ -2,6 +2,7 @@ #include "setup.h" #include +#include #define DIRECTCHANNELTIMEOUT 1 #define INFOTIMEOUT 5 diff -Nru osdpip-0.0.8/osdpip.c osdpip-0.0.8-patch-divers/osdpip.c --- osdpip-0.0.8/osdpip.c 2008-04-13 20:26:46.000000000 +0200 +++ osdpip-0.0.8-patch-divers/osdpip.c 2008-04-13 20:24:37.000000000 +0200 @@ -93,7 +93,11 @@ chan = cDevice::CurrentChannel() != 0 ? Channels.GetByNumber(cDevice::CurrentChannel()) : NULL; if (chan != NULL) { +#if APIVERSNUM >= 10500 + dev = cDevice::GetDevice(chan, 1, false); +#else dev = cDevice::GetDevice(chan, 1); +#endif if (dev) return new cOsdPipObject(dev, chan); } diff -Nru osdpip-0.0.8/receiver.c osdpip-0.0.8-patch-divers/receiver.c --- osdpip-0.0.8/receiver.c 2005-03-22 20:59:14.000000000 +0100 +++ osdpip-0.0.8-patch-divers/receiver.c 2008-04-13 20:25:34.000000000 +0200 @@ -14,7 +14,9 @@ cOsdPipReceiver::cOsdPipReceiver(const cChannel *Channel, cRingBufferFrame *ESBuffer): -#if VDRVERSNUM >= 10319 +#if APIVERSNUM >= 10500 + cReceiver(Channel->GetChannelID(), 0, Channel->Vpid()) +#elif VDRVERSNUM >= 10319 cReceiver(Channel->Ca(), 0, Channel->Vpid()) #else cReceiver(Channel->Ca(), 0, 1, Channel->Vpid()) diff -Nru osdpip-0.0.8/receiver.h osdpip-0.0.8-patch-divers/receiver.h --- osdpip-0.0.8/receiver.h 2004-11-19 17:45:31.000000000 +0100 +++ osdpip-0.0.8-patch-divers/receiver.h 2008-04-13 20:23:22.000000000 +0200 @@ -28,7 +28,7 @@ virtual void Action(void); public: - cOsdPipReceiver::cOsdPipReceiver(const cChannel *Channel, + cOsdPipReceiver(const cChannel *Channel, cRingBufferFrame *ESBuffer); virtual ~cOsdPipReceiver(); };