File xineliboutput-1.1.0-vdr-2.2.patch of Package vdr-plugin-xineliboutput

diff --git a/config.c b/config.c
index 78d609f..cbc470e 100644
--- a/config.c
+++ b/config.c
@@ -702,6 +702,9 @@ config_t::config_t() {
   ff_h264_speed_over_accurancy = FF_H264_SPEED_OVER_ACCURACY_auto;
   ff_h264_skip_loop_filter     = FF_H264_SKIP_LOOPFILTER_auto;
 
+#if (APIVERSNUM >= 20102)
+#define VideoDirectory cVideoDirectory::Name()
+#endif
   strn0cpy(media_root_dir,    "/",            sizeof(media_root_dir));
   strn0cpy(browse_files_dir,  VideoDirectory, sizeof(browse_files_dir));
   strn0cpy(browse_music_dir,  VideoDirectory, sizeof(browse_music_dir));
diff --git a/device.c b/device.c
index c182ce9..70e54a5 100644
--- a/device.c
+++ b/device.c
@@ -698,7 +698,11 @@ bool cXinelibDevice::SetPlayMode(ePlayMode PlayMode)
 #define trs_Backward   0x40  // palying backwards -- same as regen pts ???
 #endif
 
+#if (APIVERSNUM >= 20103)
+void cXinelibDevice::TrickSpeed(int Speed, bool Forward)
+#else
 void cXinelibDevice::TrickSpeed(int Speed) 
+#endif
 {
   TRACEF("cXinelibDevice::TrickSpeed");
 
diff --git a/device.h b/device.h
index b5681cb..ee494c6 100644
--- a/device.h
+++ b/device.h
@@ -111,7 +111,11 @@ class cXinelibDevice : public cDevice
   protected:
     virtual void    Clear(void);
     virtual void    Play(void);
+#if (APIVERSNUM >= 20103)
+    virtual void    TrickSpeed(int Speed, bool Forward = true);
+#else
     virtual void    TrickSpeed(int Speed);
+#endif
     virtual void    Freeze(void);
     virtual bool    Flush(int TimeoutMs = 0);
     virtual int64_t GetSTC(void);
diff --git a/menu.c b/menu.c
index 4defe82..b79d7af 100644
--- a/menu.c
+++ b/menu.c
@@ -219,6 +219,9 @@ void cMenuBrowseFiles::Set(void)
     m_CurrentDir = xc.media_root_dir;
   }
 
+#if (APIVERSNUM >= 20102)
+#define VideoDirectory cVideoDirectory::Name()
+#endif
   if (m_CurrentDir[0] != '/') {
     m_CurrentDir = VideoDirectory;
   }
diff --git a/osd.c b/osd.c
index 90756b4..cd6dc7e 100644
--- a/osd.c
+++ b/osd.c
@@ -535,12 +535,21 @@ void cXinelibOsd::Flush(void)
   if (IsTrueColor()) {
 
     LOCK_PIXMAPS;
-    while (cPixmapMemory *pm = RenderPixmaps()) {
+#if (APIVERSNUM >= 20110)
+    while (cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps()))
+#else
+    while (cPixmapMemory *pm = RenderPixmaps())
+#endif
+    {
       int w = pm->ViewPort().Width();
       int h = pm->ViewPort().Height();
       int d = w * sizeof(tColor);
       CmdArgb(Left() + pm->ViewPort().X(), Top() + pm->ViewPort().Y(), w, h, pm->Data(), h * d);
+#if (APIVERSNUM >= 20110)
+      DestroyPixmap(pm);
+#else
       delete pm;
+#endif
     }
 
     return;
diff --git a/tools/udp_pes_scheduler.c b/tools/udp_pes_scheduler.c
index c7a289b..cc6032a 100644
--- a/tools/udp_pes_scheduler.c
+++ b/tools/udp_pes_scheduler.c
@@ -634,6 +634,9 @@ void cUdpScheduler::Send_SAP(bool Announce)
 
 #if 1
   /* store copy of SDP data */
+#if (APIVERSNUM >= 20102)
+#define VideoDirectory cVideoDirectory::Name()
+#endif
   if(m_fd_sap < 0) {
     cString fname = AddDirectory(VideoDirectory,
 				 cString::sprintf("xineliboutput@%s.sdp",
openSUSE Build Service is sponsored by