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",