Es ist mir jetzt schon mehrmals passiert, dass beim Aufruf von "All events - all channels" (Tasten Grün-0-0-0) der VDR angestürzt ist. Der Backtrace besagte, dass strcmp() mit cEvent::title == NULL aufgerufen wurde. Da es nur zwei Stellen gibt, an denen neue Events angelegt werden (eit.c und epg.c) und an beiden Stellen (zumindest soweit ich das sehe) dafür gesorgt wird, dass cEvent::title auf "No title" gesetzt wird, falls es NULL ist - in eit.c über FixEpgBugs(), in epg.c explizit über SetTitle("No title"). Auch scheint immer richtig gelockt zu werden.
Ich habe jetzt als Workaround mal
--- epg.h 2024/10/13 09:47:18 5.8
+++ epg.h 2024/11/14 11:01:20
@@ -102,7 +102,9 @@
uchar TableID(void) const { return tableID; }
uchar Version(void) const { return version; }
int RunningStatus(void) const { return runningStatus; }
- const char *Title(void) const { return title; }
+ const char *Title(void) const {
+ if (!title) dsyslog("event title is NULL");//XXX
+ return title ? title : "No title"; }
const char *ShortText(void) const { return shortText; }
const char *Description(void) const { return description; }
const cComponents *Components(void) const { return components; }
Display More
eingebaut. Damit läuft es stabil und die Debug-Ausgabe kommt tatsächlich ab und zu.
Da ich selber nicht erkennen kann, warum cEvent::title NULL sein kann, bitte ich euch, da vielleicht mal mit draufzuschauen. Vielleicht findet die Schwarmintelligenz ja, was ich nicht sehe.