diff --git a/HISTORY b/HISTORY index a9916e6..a8093da 100644 --- a/HISTORY +++ b/HISTORY @@ -77,3 +77,9 @@ VDR Plugin 'iptv' Revision History - Updated for vdr-1.7.2. - Silenced a compilation warning. + +2009-02-24: Version 0.2.4 + +- Updated for vdr-1.7.4. +- Fixed blacklisting of PAT section filter. +- Set max IPTV device count to VDR's max devices. diff --git a/config.c b/config.c index d2d5c25..258965b 100644 --- a/config.c +++ b/config.c @@ -17,7 +17,7 @@ cIptvConfig::cIptvConfig(void) useBytes(1), sectionFiltering(1) { - for (unsigned int i = 0; i < ARRAY_SIZE(disabledFilters) - 1; ++i) + for (unsigned int i = 0; i < ARRAY_SIZE(disabledFilters); ++i) disabledFilters[i] = -1; memset(configDirectory, '\0', sizeof(configDirectory)); } @@ -25,7 +25,7 @@ cIptvConfig::cIptvConfig(void) unsigned int cIptvConfig::GetDisabledFiltersCount(void) const { unsigned int n = 0; - while ((disabledFilters[n] != -1) && (n < ARRAY_SIZE(disabledFilters) - 1)) + while ((disabledFilters[n] != -1) && (n < ARRAY_SIZE(disabledFilters))) n++; return n; } diff --git a/device.c b/device.c index fa4654c..477a06f 100644 --- a/device.c +++ b/device.c @@ -8,7 +8,7 @@ #include "config.h" #include "device.h" -#define IPTV_MAX_DEVICES 8 +#define IPTV_MAX_DEVICES MAXDEVICES cIptvDevice * IptvDevices[IPTV_MAX_DEVICES] = { NULL }; @@ -429,7 +429,7 @@ bool cIptvDevice::GetTSPacket(uchar *&Data) } isPacketDelivered = true; Data = p; - // Update pid statistics + // Update pid statistics AddPidStatistic(ts_pid(p), payload(p)); // Send data also to dvr fifo if ((dvrFd >= 0) && (write(dvrFd, p, TS_SIZE) != TS_SIZE)) diff --git a/iptv.c b/iptv.c index d65586b..1d16c13 100644 --- a/iptv.c +++ b/iptv.c @@ -20,7 +20,7 @@ #error "VDR-1.6.0 API version or greater is required!" #endif -static const char VERSION[] = "0.2.3"; +static const char VERSION[] = "0.2.4"; static const char DESCRIPTION[] = trNOOP("Experience the IPTV"); class cPluginIptv : public cPlugin { diff --git a/patches/vdr-1.7.2-pluginparam.patch b/patches/vdr-1.7.4-pluginparam.patch similarity index 84% rename from patches/vdr-1.7.2-pluginparam.patch rename to patches/vdr-1.7.4-pluginparam.patch index 0de878f..6a3980d 100644 --- a/patches/vdr-1.7.2-pluginparam.patch +++ b/patches/vdr-1.7.4-pluginparam.patch @@ -1,6 +1,6 @@ -diff -Nru vdr-1.7.2-vanilla/channels.c vdr-1.7.2-pluginparam/channels.c ---- vdr-1.7.2-vanilla/channels.c 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/channels.c 2008-12-14 19:52:45.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/channels.c vdr-1.7.4-pluginparam/channels.c +--- vdr-1.7.4-vanilla/channels.c 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/channels.c 2009-02-24 13:31:33.000000000 +0200 @@ -188,6 +188,7 @@ shortName = strdup(""); provider = strdup(""); @@ -122,9 +122,9 @@ diff -Nru vdr-1.7.2-vanilla/channels.c vdr-1.7.2-pluginparam/channels.c free(parambuf); free(sourcebuf); -diff -Nru vdr-1.7.2-vanilla/channels.h vdr-1.7.2-pluginparam/channels.h ---- vdr-1.7.2-vanilla/channels.h 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/channels.h 2008-12-14 19:53:44.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/channels.h vdr-1.7.4-pluginparam/channels.h +--- vdr-1.7.4-vanilla/channels.h 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/channels.h 2009-02-24 13:31:33.000000000 +0200 @@ -116,6 +116,7 @@ char *shortName; char *provider; @@ -164,22 +164,22 @@ diff -Nru vdr-1.7.2-vanilla/channels.h vdr-1.7.2-pluginparam/channels.h void SetPids(int Vpid, int Ppid, int Vtype, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid); void SetCaIds(const int *CaIds); // list must be zero-terminated void SetCaDescriptors(int Level); -diff -Nru vdr-1.7.2-vanilla/config.h vdr-1.7.2-pluginparam/config.h ---- vdr-1.7.2-vanilla/config.h 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/config.h 2008-12-14 19:52:45.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/config.h vdr-1.7.4-pluginparam/config.h +--- vdr-1.7.4-vanilla/config.h 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/config.h 2009-02-24 13:31:33.000000000 +0200 @@ -30,6 +30,8 @@ - #define APIVERSION "1.7.0" - #define APIVERSNUM 10700 // Version * 10000 + Major * 100 + Minor + #define APIVERSION "1.7.4" + #define APIVERSNUM 10704 // Version * 10000 + Major * 100 + Minor +#define PLUGINPARAMPATCHVERSNUM 1 + // When loading plugins, VDR searches them by their APIVERSION, which // may be smaller than VDRVERSION in case there have been no changes to // VDR header files since the last APIVERSION. This allows compiled -diff -Nru vdr-1.7.2-vanilla/menu.c vdr-1.7.2-pluginparam/menu.c ---- vdr-1.7.2-vanilla/menu.c 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/menu.c 2008-12-14 19:52:45.000000000 +0200 -@@ -189,6 +189,7 @@ +diff -Nru vdr-1.7.4-vanilla/menu.c vdr-1.7.4-pluginparam/menu.c +--- vdr-1.7.4-vanilla/menu.c 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/menu.c 2009-02-24 13:31:33.000000000 +0200 +@@ -190,6 +190,7 @@ cChannel *channel; cChannel data; char name[256]; @@ -187,7 +187,7 @@ diff -Nru vdr-1.7.2-vanilla/menu.c vdr-1.7.2-pluginparam/menu.c void Setup(void); public: cMenuEditChannel(cChannel *Channel, bool New = false); -@@ -221,6 +222,7 @@ +@@ -222,6 +223,7 @@ // Parameters for all types of sources: strn0cpy(name, data.name, sizeof(name)); @@ -195,7 +195,7 @@ diff -Nru vdr-1.7.2-vanilla/menu.c vdr-1.7.2-pluginparam/menu.c Add(new cMenuEditStrItem( tr("Name"), name, sizeof(name))); Add(new cMenuEditSrcItem( tr("Source"), &data.source)); Add(new cMenuEditIntItem( tr("Frequency"), &data.frequency)); -@@ -253,6 +255,7 @@ +@@ -254,6 +256,7 @@ ST(" T") Add(new cMenuEditMapItem( tr("Guard"), &data.guard, GuardValues)); ST(" T") Add(new cMenuEditMapItem( tr("Hierarchy"), &data.hierarchy, HierarchyValues)); ST(" S ") Add(new cMenuEditMapItem( tr("Rolloff"), &data.rollOff, RollOffValues)); @@ -203,7 +203,7 @@ diff -Nru vdr-1.7.2-vanilla/menu.c vdr-1.7.2-pluginparam/menu.c SetCurrent(Get(current)); Display(); -@@ -267,6 +270,7 @@ +@@ -268,6 +271,7 @@ if (Key == kOk) { if (Channels.HasUniqueChannelID(&data, channel)) { data.name = strcpyrealloc(data.name, name); @@ -211,9 +211,9 @@ diff -Nru vdr-1.7.2-vanilla/menu.c vdr-1.7.2-pluginparam/menu.c if (channel) { *channel = data; isyslog("edited channel %d %s", channel->Number(), *data.ToText()); -diff -Nru vdr-1.7.2-vanilla/po/fi_FI.po vdr-1.7.2-pluginparam/po/fi_FI.po ---- vdr-1.7.2-vanilla/po/fi_FI.po 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/po/fi_FI.po 2008-12-14 19:52:45.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/po/fi_FI.po vdr-1.7.4-pluginparam/po/fi_FI.po +--- vdr-1.7.4-vanilla/po/fi_FI.po 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/po/fi_FI.po 2009-02-24 13:31:33.000000000 +0200 @@ -1010,3 +1010,6 @@ #, c-format msgid "VDR will shut down in %s minutes" @@ -221,9 +221,9 @@ diff -Nru vdr-1.7.2-vanilla/po/fi_FI.po vdr-1.7.2-pluginparam/po/fi_FI.po + +msgid "Parameters" +msgstr "Parametrit" -diff -Nru vdr-1.7.2-vanilla/po/fr_FR.po vdr-1.7.2-pluginparam/po/fr_FR.po ---- vdr-1.7.2-vanilla/po/fr_FR.po 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/po/fr_FR.po 2008-12-14 19:52:45.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/po/fr_FR.po vdr-1.7.4-pluginparam/po/fr_FR.po +--- vdr-1.7.4-vanilla/po/fr_FR.po 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/po/fr_FR.po 2009-02-24 13:31:33.000000000 +0200 @@ -1013,3 +1013,6 @@ #, c-format msgid "VDR will shut down in %s minutes" @@ -231,9 +231,9 @@ diff -Nru vdr-1.7.2-vanilla/po/fr_FR.po vdr-1.7.2-pluginparam/po/fr_FR.po + +msgid "Parameters" +msgstr "Paramètres" -diff -Nru vdr-1.7.2-vanilla/sources.c vdr-1.7.2-pluginparam/sources.c ---- vdr-1.7.2-vanilla/sources.c 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/sources.c 2008-12-14 19:52:45.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/sources.c vdr-1.7.4-pluginparam/sources.c +--- vdr-1.7.4-vanilla/sources.c 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/sources.c 2009-02-24 13:31:33.000000000 +0200 @@ -37,6 +37,7 @@ char buffer[16]; char *q = buffer; @@ -250,9 +250,9 @@ diff -Nru vdr-1.7.2-vanilla/sources.c vdr-1.7.2-pluginparam/sources.c case 'C': type = stCable; break; case 'S': type = stSat; break; case 'T': type = stTerr; break; -diff -Nru vdr-1.7.2-vanilla/sources.conf vdr-1.7.2-pluginparam/sources.conf ---- vdr-1.7.2-vanilla/sources.conf 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/sources.conf 2008-12-14 19:52:45.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/sources.conf vdr-1.7.4-pluginparam/sources.conf +--- vdr-1.7.4-vanilla/sources.conf 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/sources.conf 2009-02-24 13:31:33.000000000 +0200 @@ -194,3 +194,7 @@ # Terrestrial @@ -261,9 +261,9 @@ diff -Nru vdr-1.7.2-vanilla/sources.conf vdr-1.7.2-pluginparam/sources.conf +# Plugin + +P Plugin -diff -Nru vdr-1.7.2-vanilla/sources.h vdr-1.7.2-pluginparam/sources.h ---- vdr-1.7.2-vanilla/sources.h 2008-12-14 18:36:17.000000000 +0200 -+++ vdr-1.7.2-pluginparam/sources.h 2008-12-14 19:52:45.000000000 +0200 +diff -Nru vdr-1.7.4-vanilla/sources.h vdr-1.7.4-pluginparam/sources.h +--- vdr-1.7.4-vanilla/sources.h 2009-01-26 11:44:48.000000000 +0200 ++++ vdr-1.7.4-pluginparam/sources.h 2009-02-24 13:31:33.000000000 +0200 @@ -16,10 +16,11 @@ public: enum eSourceType { diff --git a/sectionfilter.c b/sectionfilter.c index cafef6b..aa355df 100644 --- a/sectionfilter.c +++ b/sectionfilter.c @@ -226,7 +226,7 @@ void cIptvSectionFilter::ProcessData(const uint8_t* buf) error("Not TS packet: 0x%X\n", buf[0]); return; } - + // Stop if not the PID this filter is looking for if (ts_pid(buf) != pid) return; @@ -240,7 +240,7 @@ void cIptvSectionFilter::ProcessData(const uint8_t* buf) uint8_t cc = buf[3] & 0x0f; int ccok = ((feedcc + 1) & 0x0f) == cc; - feedcc = cc; + feedcc = cc; int dc_i = 0; if (buf[3] & 0x20) {