diff options
| author | Dave <vdr@pickles.me.uk> | 2011-07-20 10:24:26 +0100 |
|---|---|---|
| committer | Dave <vdr@pickles.me.uk> | 2011-07-20 10:24:26 +0100 |
| commit | 3b19e950114aae28d0b75b7b714bbc66c08ba951 (patch) | |
| tree | 96aad028ffd5d9c3920f5710a90c84ded61572db | |
| parent | e3b0193c5f0e8996ec33ba4386b4effec6fcc077 (diff) | |
| download | vdrtva-3b19e950114aae28d0b75b7b714bbc66c08ba951.tar.gz vdrtva-3b19e950114aae28d0b75b7b714bbc66c08ba951.tar.bz2 | |
Fixed memory leak (thanks Laz).
Don't save CRIDs for channels we can't receive.
| -rw-r--r-- | vdrtva-1.7.19.diff | 96 |
1 files changed, 51 insertions, 45 deletions
diff --git a/vdrtva-1.7.19.diff b/vdrtva-1.7.19.diff index 689f623..eb5fd9d 100644 --- a/vdrtva-1.7.19.diff +++ b/vdrtva-1.7.19.diff @@ -1,6 +1,6 @@ -diff -ur vdr-1.7.19/channels.c vdr-1.7/channels.c ---- vdr-1.7.19/channels.c 2010-11-07 12:24:59.000000000 +0000 -+++ vdr-1.7/channels.c 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//channels.c vdr-1.7//channels.c +--- vdr-1.7.19//channels.c 2010-11-07 12:24:59.000000000 +0000 ++++ vdr-1.7//channels.c 2011-06-19 11:57:15.000000000 +0100 @@ -61,6 +61,7 @@ shortName = strdup(""); provider = strdup(""); @@ -97,9 +97,9 @@ diff -ur vdr-1.7.19/channels.c vdr-1.7/channels.c if (!GetChannelID().Valid()) { esyslog("ERROR: channel data results in invalid ID!"); return false; -diff -ur vdr-1.7.19/channels.h vdr-1.7/channels.h ---- vdr-1.7.19/channels.h 2010-06-05 14:12:54.000000000 +0100 -+++ vdr-1.7/channels.h 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//channels.h vdr-1.7//channels.h +--- vdr-1.7.19//channels.h 2010-06-05 14:12:54.000000000 +0100 ++++ vdr-1.7//channels.h 2011-06-19 11:57:15.000000000 +0100 @@ -96,6 +96,7 @@ char *shortName; char *provider; @@ -124,9 +124,9 @@ diff -ur vdr-1.7.19/channels.h vdr-1.7/channels.h void SetPids(int Vpid, int Ppid, int Vtype, int *Apids, int *Atypes, char ALangs[][MAXLANGCODE2], int *Dpids, int *Dtypes, 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 -ur vdr-1.7.19/config.c vdr-1.7/config.c ---- vdr-1.7.19/config.c 2011-06-13 15:41:01.000000000 +0100 -+++ vdr-1.7/config.c 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//config.c vdr-1.7//config.c +--- vdr-1.7.19//config.c 2011-06-13 15:41:01.000000000 +0100 ++++ vdr-1.7//config.c 2011-06-19 11:57:15.000000000 +0100 @@ -353,6 +353,7 @@ UseSubtitle = 1; UseVps = 0; @@ -151,9 +151,9 @@ diff -ur vdr-1.7.19/config.c vdr-1.7/config.c Store("RecordingDirs", RecordingDirs); Store("FoldersInTimerMenu", FoldersInTimerMenu); Store("NumberKeysForChars", NumberKeysForChars); -diff -ur vdr-1.7.19/config.h vdr-1.7/config.h ---- vdr-1.7.19/config.h 2011-06-13 15:24:40.000000000 +0100 -+++ vdr-1.7/config.h 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//config.h vdr-1.7//config.h +--- vdr-1.7.19//config.h 2011-06-13 15:24:40.000000000 +0100 ++++ vdr-1.7//config.h 2011-06-19 11:57:15.000000000 +0100 @@ -252,6 +252,7 @@ int UseSubtitle; int UseVps; @@ -162,10 +162,10 @@ diff -ur vdr-1.7.19/config.h vdr-1.7/config.h int RecordingDirs; int FoldersInTimerMenu; int NumberKeysForChars; -diff -ur vdr-1.7.19/eit.c vdr-1.7/eit.c ---- vdr-1.7.19/eit.c 2010-05-14 15:08:35.000000000 +0100 -+++ vdr-1.7/eit.c 2011-06-19 11:57:15.000000000 +0100 -@@ -265,6 +265,27 @@ +diff -u vdr-1.7.19//eit.c vdr-1.7//eit.c +--- vdr-1.7.19//eit.c 2010-05-14 15:08:35.000000000 +0100 ++++ vdr-1.7//eit.c 2011-07-20 10:14:54.000000000 +0100 +@@ -265,6 +265,33 @@ } } break; @@ -176,26 +176,32 @@ diff -ur vdr-1.7.19/eit.c vdr-1.7/eit.c + if (cde.getCridLocation() == 0) { + char buffer[Utf8BufSize(256)]; + strcpy (buffer, channel->DefaultAuthority()); -+ strcat(buffer, cde.identifier.getText()); -+ switch (cde.getCridType()) { -+ case 0x01: -+ case 0x31: -+ pEvent->SetItemCRID(buffer); -+ break; -+ case 0x02: -+ case 0x32: -+ pEvent->SetSeriesCRID(buffer); -+ break; -+ } ++ int i = strlen(buffer); ++ if (i) { ++ cde.identifier.getText(buffer+i, Utf8BufSize(256)-i); ++ switch (cde.getCridType()) { ++ case 0x01: // ETSI 102 363 code ++ case 0x31: // UK Freeview private code ++ pEvent->SetItemCRID(buffer); ++ break; ++ case 0x02: // ETSI 102 363 code ++ case 0x32: // UK Freeview private code ++ pEvent->SetSeriesCRID(buffer); ++ break; ++ // ETSI 102 323 defines CRID type 0x03, which describes 'related' or 'suggested' events. ++ // Freeview broadcasts these as CRID type 0x33. ++ // There can be more than one type 0x33 descriptor per event (each with one CRID). ++ } ++ } + } + } + } default: ; } delete d; -diff -ur vdr-1.7.19/epg.c vdr-1.7/epg.c ---- vdr-1.7.19/epg.c 2011-02-25 15:16:05.000000000 +0000 -+++ vdr-1.7/epg.c 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//epg.c vdr-1.7//epg.c +--- vdr-1.7.19//epg.c 2011-02-25 15:16:05.000000000 +0000 ++++ vdr-1.7//epg.c 2011-07-17 10:45:04.000000000 +0100 @@ -126,6 +126,8 @@ startTime = 0; duration = 0; @@ -253,9 +259,9 @@ diff -ur vdr-1.7.19/epg.c vdr-1.7/epg.c default: esyslog("ERROR: unexpected tag while reading EPG data: %s", s); return false; } -diff -ur vdr-1.7.19/epg.h vdr-1.7/epg.h ---- vdr-1.7.19/epg.h 2011-02-25 14:14:38.000000000 +0000 -+++ vdr-1.7/epg.h 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//epg.h vdr-1.7//epg.h +--- vdr-1.7.19//epg.h 2011-02-25 14:14:38.000000000 +0000 ++++ vdr-1.7//epg.h 2011-06-19 11:57:15.000000000 +0100 @@ -86,6 +86,8 @@ int duration; // Duration of this event in seconds time_t vps; // Video Programming Service timestamp (VPS, aka "Programme Identification Label", PIL) @@ -283,9 +289,9 @@ diff -ur vdr-1.7.19/epg.h vdr-1.7/epg.h void SetSeen(void); cString ToDescr(void) const; void Dump(FILE *f, const char *Prefix = "", bool InfoOnly = false) const; -diff -ur vdr-1.7.19/menu.c vdr-1.7/menu.c ---- vdr-1.7.19/menu.c 2011-02-27 12:37:48.000000000 +0000 -+++ vdr-1.7/menu.c 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//menu.c vdr-1.7//menu.c +--- vdr-1.7.19//menu.c 2011-02-27 12:37:48.000000000 +0000 ++++ vdr-1.7//menu.c 2011-06-19 11:57:15.000000000 +0100 @@ -3057,6 +3057,7 @@ Add(new cMenuEditBoolItem(tr("Setup.Recording$Use episode name"), &data.UseSubtitle)); Add(new cMenuEditBoolItem(tr("Setup.Recording$Use VPS"), &data.UseVps)); @@ -294,9 +300,9 @@ diff -ur vdr-1.7.19/menu.c vdr-1.7/menu.c Add(new cMenuEditBoolItem(tr("Setup.Recording$Mark instant recording"), &data.MarkInstantRecord)); Add(new cMenuEditStrItem( tr("Setup.Recording$Name instant recording"), data.NameInstantRecord, sizeof(data.NameInstantRecord))); Add(new cMenuEditIntItem( tr("Setup.Recording$Instant rec. time (min)"), &data.InstantRecordTime, 1, MAXINSTANTRECTIME)); -diff -ur vdr-1.7.19/sdt.c vdr-1.7/sdt.c ---- vdr-1.7.19/sdt.c 2010-05-16 15:23:21.000000000 +0100 -+++ vdr-1.7/sdt.c 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//sdt.c vdr-1.7//sdt.c +--- vdr-1.7.19//sdt.c 2010-05-16 15:23:21.000000000 +0100 ++++ vdr-1.7//sdt.c 2011-06-19 11:57:15.000000000 +0100 @@ -128,6 +128,12 @@ } } @@ -310,9 +316,9 @@ diff -ur vdr-1.7.19/sdt.c vdr-1.7/sdt.c default: ; } delete d; -diff -ur vdr-1.7.19/timers.c vdr-1.7/timers.c ---- vdr-1.7.19/timers.c 2010-01-16 11:18:53.000000000 +0000 -+++ vdr-1.7/timers.c 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//timers.c vdr-1.7//timers.c +--- vdr-1.7.19//timers.c 2010-01-16 11:18:53.000000000 +0000 ++++ vdr-1.7//timers.c 2011-06-19 11:57:15.000000000 +0100 @@ -423,7 +423,7 @@ } @@ -322,9 +328,9 @@ diff -ur vdr-1.7.19/timers.c vdr-1.7/timers.c if (Margin || !Directly) { startTime = event->StartTime(); stopTime = event->EndTime(); -diff -ur vdr-1.7.19/vdr.5 vdr-1.7/vdr.5 ---- vdr-1.7.19/vdr.5 2011-04-03 11:21:36.000000000 +0100 -+++ vdr-1.7/vdr.5 2011-06-19 11:57:15.000000000 +0100 +diff -u vdr-1.7.19//vdr.5 vdr-1.7//vdr.5 +--- vdr-1.7.19//vdr.5 2011-04-03 11:21:36.000000000 +0100 ++++ vdr-1.7//vdr.5 2011-06-19 11:57:15.000000000 +0100 @@ -247,6 +247,9 @@ .B RID The Radio ID of this channel (typically 0, may be used to distinguish channels where |
