diff --git a/README b/README index 18a1462..1e26047 100644 --- a/README +++ b/README @@ -34,7 +34,8 @@ cd /put/your/path/here/VDR/PLUGINS/src tar -xzf /put/your/path/here/vdr-iptv-X.Y.Z.tgz ln -s iptv-X.Y.Z iptv cd /put/your/path/here/VDR -patch -p1 < PLUGINS/src/iptv/patches/vdr-1.5.x-iptv.patch +patch -p1 < PLUGINS/src/iptv/patches/vdr-1.5.x-closefilter.patch +patch -p1 < PLUGINS/src/iptv/patches/vdr-1.5.x-pluginparam.patch cp sources.conf /path/to/vdrconf/ make make plugins diff --git a/patches/vdr-1.5.9-closefilter.patch b/patches/vdr-1.5.9-closefilter.patch new file mode 100644 index 0000000..b67ed0a --- /dev/null +++ b/patches/vdr-1.5.9-closefilter.patch @@ -0,0 +1,105 @@ +diff -Nru vdr-1.5.9-vanilla/PLUGINS.html vdr-1.5.9-closefilter/PLUGINS.html +--- vdr-1.5.9-vanilla/PLUGINS.html 2007-08-24 16:45:02.000000000 +0300 ++++ vdr-1.5.9-closefilter/PLUGINS.html 2007-09-28 17:57:47.484049900 +0300 +@@ -1778,7 +1778,7 @@ +
+ virtual bool ProvidesSource(int Source) const; + virtual bool ProvidesTransponder(const cChannel *Channel) const; +-virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL); ++virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL) const; + virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); + |
+ +@@ -1838,7 +1838,7 @@ + functionality: + +
+-virtual bool GrabImage(const char *FileName, bool Jpeg = true, int Quality = -1, int Si ++virtual bool GrabImage(const char *FileName, bool Jpeg = true, int Quality = -1, int SizeX = -1, int SizeY = -1); + virtual void SetVideoFormat(bool VideoFormat16_9); + virtual void SetVolumeDevice(int Volume); + |
+@@ -1846,14 +1846,15 @@ +
+ Section Filtering +
+-If your device provides section filtering capabilities it can implement +-the function ++If your device provides section filtering capabilities it can implement ++functions + +
+ virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask); ++virtual bool CloseFilter(int Handle); + |
+ +-which must open a file handle that delivers section data for the given ++which must open and close a file handle that delivers section data for the given + filter parameters. +
+ In order to actually start section handling, the +diff -Nru vdr-1.5.9-vanilla/device.c vdr-1.5.9-closefilter/device.c +--- vdr-1.5.9-vanilla/device.c 2007-08-26 14:11:42.000000000 +0300 ++++ vdr-1.5.9-closefilter/device.c 2007-09-28 17:53:49.734049900 +0300 +@@ -576,6 +576,11 @@ + return -1; + } + ++bool cDevice::CloseFilter(int Handle) ++{ ++ return false; ++} ++ + void cDevice::AttachFilter(cFilter *Filter) + { + if (sectionHandler) +diff -Nru vdr-1.5.9-vanilla/device.h vdr-1.5.9-closefilter/device.h +--- vdr-1.5.9-vanilla/device.h 2007-07-22 14:20:13.000000000 +0300 ++++ vdr-1.5.9-closefilter/device.h 2007-09-28 17:53:49.749674900 +0300 +@@ -303,6 +303,8 @@ + ///< Opens a file handle for the given filter data. + ///< A derived device that provides section data must + ///< implement this function. ++ virtual bool CloseFilter(int Handle); ++ ///< Closes a file handle + void AttachFilter(cFilter *Filter); + ///< Attaches the given filter to this device. + void Detach(cFilter *Filter); +diff -Nru vdr-1.5.9-vanilla/dvbdevice.c vdr-1.5.9-closefilter/dvbdevice.c +--- vdr-1.5.9-vanilla/dvbdevice.c 2007-08-17 16:37:56.000000000 +0300 ++++ vdr-1.5.9-closefilter/dvbdevice.c 2007-09-28 17:53:49.765299900 +0300 +@@ -711,6 +711,11 @@ + return -1; + } + ++bool cDvbDevice::CloseFilter(int Handle) ++{ ++ return (close(Handle) == 0); ++} ++ + void cDvbDevice::TurnOffLiveMode(bool LiveView) + { + if (LiveView) { +diff -Nru vdr-1.5.9-vanilla/dvbdevice.h vdr-1.5.9-closefilter/dvbdevice.h +--- vdr-1.5.9-vanilla/dvbdevice.h 2007-02-25 14:23:57.000000000 +0200 ++++ vdr-1.5.9-closefilter/dvbdevice.h 2007-09-28 17:53:49.765299900 +0300 +@@ -83,6 +83,7 @@ + + protected: + virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask); ++ virtual bool CloseFilter(int Handle); + + // Common Interface facilities: + +diff -Nru vdr-1.5.9-vanilla/sections.c vdr-1.5.9-closefilter/sections.c +--- vdr-1.5.9-vanilla/sections.c 2005-09-18 14:30:29.000000000 +0300 ++++ vdr-1.5.9-closefilter/sections.c 2007-09-28 17:53:49.780924900 +0300 +@@ -105,7 +105,7 @@ + for (fh = filterHandles.First(); fh; fh = filterHandles.Next(fh)) { + if (fh->filterData.Is(FilterData->pid, FilterData->tid, FilterData->mask)) { + if (--fh->used <= 0) { +- close(fh->handle); ++ device->CloseFilter(fh->handle); + filterHandles.Del(fh); + break; + } diff --git a/patches/vdr-1.5.9-iptv.patch b/patches/vdr-1.5.9-pluginparam.patch similarity index 75% rename from patches/vdr-1.5.9-iptv.patch rename to patches/vdr-1.5.9-pluginparam.patch index 9873785..785e958 100644 --- a/patches/vdr-1.5.9-iptv.patch +++ b/patches/vdr-1.5.9-pluginparam.patch @@ -1,6 +1,6 @@ -diff -Nru vdr-1.5.9-vanilla/channels.c vdr-1.5.9-iptv/channels.c +diff -Nru vdr-1.5.9-vanilla/channels.c vdr-1.5.9-pluginparam/channels.c --- vdr-1.5.9-vanilla/channels.c 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/channels.c 2007-09-22 01:34:28.000000000 +0300 ++++ vdr-1.5.9-pluginparam/channels.c 2007-10-07 19:54:06.000000000 +0300 @@ -166,6 +166,7 @@ shortName = strdup(""); provider = strdup(""); @@ -122,9 +122,9 @@ diff -Nru vdr-1.5.9-vanilla/channels.c vdr-1.5.9-iptv/channels.c free(parambuf); free(sourcebuf); -diff -Nru vdr-1.5.9-vanilla/channels.h vdr-1.5.9-iptv/channels.h +diff -Nru vdr-1.5.9-vanilla/channels.h vdr-1.5.9-pluginparam/channels.h --- vdr-1.5.9-vanilla/channels.h 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/channels.h 2007-09-22 01:34:28.000000000 +0300 ++++ vdr-1.5.9-pluginparam/channels.h 2007-10-07 19:54:06.000000000 +0300 @@ -114,6 +114,7 @@ char *shortName; char *provider; @@ -164,62 +164,9 @@ diff -Nru vdr-1.5.9-vanilla/channels.h vdr-1.5.9-iptv/channels.h void SetPids(int Vpid, int Ppid, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int Tpid); void SetCaIds(const int *CaIds); // list must be zero-terminated void SetCaDescriptors(int Level); -diff -Nru vdr-1.5.9-vanilla/device.c vdr-1.5.9-iptv/device.c ---- vdr-1.5.9-vanilla/device.c 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/device.c 2007-09-22 01:35:17.000000000 +0300 -@@ -576,6 +576,11 @@ - return -1; - } - -+bool cDevice::CloseFilter(int Handle) -+{ -+ return false; -+} -+ - void cDevice::AttachFilter(cFilter *Filter) - { - if (sectionHandler) -diff -Nru vdr-1.5.9-vanilla/device.h vdr-1.5.9-iptv/device.h ---- vdr-1.5.9-vanilla/device.h 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/device.h 2007-09-22 01:35:02.000000000 +0300 -@@ -303,6 +303,8 @@ - ///< Opens a file handle for the given filter data. - ///< A derived device that provides section data must - ///< implement this function. -+ virtual bool CloseFilter(int Handle); -+ ///< Closes a file handle - void AttachFilter(cFilter *Filter); - ///< Attaches the given filter to this device. - void Detach(cFilter *Filter); -diff -Nru vdr-1.5.9-vanilla/dvbdevice.c vdr-1.5.9-iptv/dvbdevice.c ---- vdr-1.5.9-vanilla/dvbdevice.c 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/dvbdevice.c 2007-09-22 01:35:52.000000000 +0300 -@@ -711,6 +711,11 @@ - return -1; - } - -+bool cDvbDevice::CloseFilter(int Handle) -+{ -+ return (close(Handle) == 0); -+} -+ - void cDvbDevice::TurnOffLiveMode(bool LiveView) - { - if (LiveView) { -diff -Nru vdr-1.5.9-vanilla/dvbdevice.h vdr-1.5.9-iptv/dvbdevice.h ---- vdr-1.5.9-vanilla/dvbdevice.h 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/dvbdevice.h 2007-09-22 01:35:28.000000000 +0300 -@@ -83,6 +83,7 @@ - - protected: - virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask); -+ virtual bool CloseFilter(int Handle); - - // Common Interface facilities: - -diff -Nru vdr-1.5.9-vanilla/menu.c vdr-1.5.9-iptv/menu.c +diff -Nru vdr-1.5.9-vanilla/menu.c vdr-1.5.9-pluginparam/menu.c --- vdr-1.5.9-vanilla/menu.c 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/menu.c 2007-09-22 01:34:28.000000000 +0300 ++++ vdr-1.5.9-pluginparam/menu.c 2007-10-07 19:54:06.000000000 +0300 @@ -219,6 +219,7 @@ cChannel *channel; cChannel data; @@ -252,9 +199,9 @@ diff -Nru vdr-1.5.9-vanilla/menu.c vdr-1.5.9-iptv/menu.c if (channel) { *channel = data; isyslog("edited channel %d %s", channel->Number(), *data.ToText()); -diff -Nru vdr-1.5.9-vanilla/po/fi_FI.po vdr-1.5.9-iptv/po/fi_FI.po +diff -Nru vdr-1.5.9-vanilla/po/fi_FI.po vdr-1.5.9-pluginparam/po/fi_FI.po --- vdr-1.5.9-vanilla/po/fi_FI.po 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/po/fi_FI.po 2007-09-22 01:34:28.000000000 +0300 ++++ vdr-1.5.9-pluginparam/po/fi_FI.po 2007-10-07 19:54:06.000000000 +0300 @@ -1271,3 +1271,7 @@ #, c-format msgid "VDR will shut down in %s minutes" @@ -263,21 +210,9 @@ diff -Nru vdr-1.5.9-vanilla/po/fi_FI.po vdr-1.5.9-iptv/po/fi_FI.po +#: menu.c:284 +msgid "Parameters" +msgstr "Parametrit" -diff -Nru vdr-1.5.9-vanilla/sections.c vdr-1.5.9-iptv/sections.c ---- vdr-1.5.9-vanilla/sections.c 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/sections.c 2007-09-22 13:18:11.000000000 +0300 -@@ -105,7 +105,7 @@ - for (fh = filterHandles.First(); fh; fh = filterHandles.Next(fh)) { - if (fh->filterData.Is(FilterData->pid, FilterData->tid, FilterData->mask)) { - if (--fh->used <= 0) { -- close(fh->handle); -+ device->CloseFilter(fh->handle); - filterHandles.Del(fh); - break; - } -diff -Nru vdr-1.5.9-vanilla/sources.c vdr-1.5.9-iptv/sources.c +diff -Nru vdr-1.5.9-vanilla/sources.c vdr-1.5.9-pluginparam/sources.c --- vdr-1.5.9-vanilla/sources.c 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/sources.c 2007-09-22 01:34:28.000000000 +0300 ++++ vdr-1.5.9-pluginparam/sources.c 2007-10-07 19:54:06.000000000 +0300 @@ -37,6 +37,7 @@ char buffer[16]; char *q = buffer; @@ -294,9 +229,9 @@ diff -Nru vdr-1.5.9-vanilla/sources.c vdr-1.5.9-iptv/sources.c case 'C': type = stCable; break; case 'S': type = stSat; break; case 'T': type = stTerr; break; -diff -Nru vdr-1.5.9-vanilla/sources.conf vdr-1.5.9-iptv/sources.conf +diff -Nru vdr-1.5.9-vanilla/sources.conf vdr-1.5.9-pluginparam/sources.conf --- vdr-1.5.9-vanilla/sources.conf 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/sources.conf 2007-09-22 01:34:28.000000000 +0300 ++++ vdr-1.5.9-pluginparam/sources.conf 2007-10-07 19:54:06.000000000 +0300 @@ -188,3 +188,7 @@ # Terrestrial @@ -305,9 +240,9 @@ diff -Nru vdr-1.5.9-vanilla/sources.conf vdr-1.5.9-iptv/sources.conf +# Plugin + +P Plugin -diff -Nru vdr-1.5.9-vanilla/sources.h vdr-1.5.9-iptv/sources.h +diff -Nru vdr-1.5.9-vanilla/sources.h vdr-1.5.9-pluginparam/sources.h --- vdr-1.5.9-vanilla/sources.h 2007-08-26 18:45:20.000000000 +0300 -+++ vdr-1.5.9-iptv/sources.h 2007-09-22 01:34:28.000000000 +0300 ++++ vdr-1.5.9-pluginparam/sources.h 2007-10-07 19:54:06.000000000 +0300 @@ -16,10 +16,11 @@ public: enum eSourceType {