Hm, es gab vor einiger Zeit LG Smartphones, die Double Tap auf den Touchscreen im Kernel als Wakeup hatten, alternativ zum Button.
Das war eigentlich ganz cool..
Hm, es gab vor einiger Zeit LG Smartphones, die Double Tap auf den Touchscreen im Kernel als Wakeup hatten, alternativ zum Button.
Das war eigentlich ganz cool..
Die datei HISTORY muss vorher aktualisiert werden.
Das Einstellungsmenü von epg2vdr ging bei mir in allen Tests ohne Probleme. Seltsam.
Das etwas mehr aufmal reservieren bedeutet vor allem weniger warten auf langsames malloc.
Ich habe jetzt folgenden Test durchgeführt
a) vdr-2.6.6 mit epg2vdr und control gestartet
b) vdr-2.6.6 mit epg2vdr und softhddevice gestartet
In beiden Fällen stürzt vdr absolut zuverlässig ab, wenn ich im Haupmenü
'EPG and Timer' und dann auf 'Timer' gehe.
Der Fehler liegt eindeutig an epg2vdr. Auch der Stack trace sieht gleich aus.
Ich finde diese deine Idee gut, auch ohne dringende Notwendigkeit. Könnte das nicht einfach bleiben?
Für vnsiserver bitte wieder default verwenden
Mein fork darf in Rente gehen, danke an M-Reimer für das mergen der letzten Änderung.
Jup, ich kenne das. Aber meistens habe ich Hardware und Software parallel upzugraden, wegen starker Abhängigkeiten zwischen Firmware und Software.
So wie heute..
Danke.
Die code Änderungen für satip und iptv wären gering.
Mal abgesehen davon, dass eine Änderung in iptv rein zu bekommen schwierig wird.
Aber der Impact des Patches als solches für VDR Infrastruktur sind nicht ohne..
Ohne epg2vdr funktioniert control.
Warum muss unbedingt MaySwitchTransponder geändert werden?
Oh, ich hatte das schon vergessen..
Da muss ich nochmal nachhaken. Wieso wurde aus der 2 eine 1?
snprintf darf bis zu (sizeof(buffer) - 1) bytes schreiben, da ein byte weg ist für (Code & st_Mask) >> 24 und der pointer nicht mehr bei buffer beginnt.
Wenn kein byte mehr übrig war für das \0, ist der string nicht mehr terminiert. Das führt dann zu l < (sizeof(buffer) - 1). Kleiner.
Das byte für die nachfolgende Zeile fehlt mit dem W oder E dann aber noch - mein Fehler, sorry.
Also
alternativ deine korrekte Lösung.
Das kam mir auch schon in den Sinn, ob das vllt. die gleiche Ursache hat.
Beide Plugins sind schon ewig nicht mehr angefasst worden, weil sie eben zu 100% stabil liefen und es keine feature requests oder dringende Änderungen in VDR selbst gab. Neuer VDR -> neu bauen && fertig. Mit 2.6.6 gibt es zu beiden Plugins problem reports, die nicht verstanden sind.
Die letzte echte Änderung in control war Apr 3, 2021.
Vom Prinzip her müsste das genau wie hier mit Geduld, Testern und detaillierten Infos / cores debugged werden.
Ich selbst nutze control regelmäßig beim debuggen meiner Plugins mit einem (fast) ungepatchten VDR, aber ich kann hier leider keine Abstürze provozieren.
Kann ich auch mit vnsiserver nicht, aber nutze das Plugin eigentlich nicht selbst.
Würde es dir etwas ausmachen eine Datei namens .gitignore in VDR aufzunehmen?
Diese Textdatei enthält Infos, welche files nicht versioniert werden.
Normalerweise macht diese Datei keinerlei Arbeit, aber erleichtert das Verfolgen von Änderungen immens.
Ein sinnvolles Beispiel wäre das hier
Ich würde vorschlagen UpdateNameSource() privat zu halten:
diff --git a/channels.h b/channels.h
index 98369288..060dba83 100644
--- a/channels.h
+++ b/channels.h
@@ -88,6 +88,7 @@ class cChannel : public cListObject {
friend class cSchedules;
friend class cMenuEditChannel;
friend class cDvbSourceParam;
+ friend class cMenuSetupMisc;
private:
static cString ToText(const cChannel *Channel);
char *name;
@@ -132,6 +133,7 @@ private:
cLinkChannels *linkChannels;
cChannel *refChannel;
cString TransponderDataToString(void) const;
+ void UpdateNameSource(void);
public:
cChannel(void);
cChannel(const cChannel &Channel);
@@ -140,7 +142,6 @@ public:
cString ToText(void) const;
bool Parse(const char *s);
bool Save(FILE *f);
- void UpdateNameSource(void);
const char *Name(void) const;
const char *ShortName(bool OrName = false) const;
const char *Provider(void) const { return provider; }
Alles anzeigen
Ich hab das mal auf https://github.com/wirbel-at-vdr-portal/vdr-cChannel-Name bis patch #4 eingepflegt zum besseren Testen.
Hmm, ich hatte wohl nicht die letzte Version vom Patch erwischt.
mach mal
git pull
und probier noch einmal.
Vielleicht wäre sogar besser, die Kombi aus Name und Source ganz aus cChannel zu entfernen und nur im OSD an der benötigten Stelle zusammen zu bauen.
M-Reimer - danke! Sehe ich ganz genau so, ich hatte das schon gar nicht mehr auf dem Schirm.
Dieser Patch von MarkusE+SHF sollte auf jeden Fall in die nächste VDR Version.
Habe ich in mein temporäres git aufgenommen.
Um so mehr hat RHS mit seinem Kommentar/Nachfrage recht..
Hallo RHS,
ja, das macht definitiv Sinn, Klarheit über die Teststände ist essentiell.
Aber ohne deine intensiven Tests gäbe es keinen Fortschritt bei vnsi, danke dafür.
Ich packe das mal in zwei temporäre github repos auf meinem Account, das macht es leichter für dich.
------------------------------------------------------------------------------------
für vnsiserver bitte das hier verwenden:
git clone https://github.com/wirbel-at-v…in-vnsiserver-crashes.git
identisch zu:
+ processChannels_GetChannels_StateKey.diff
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
für VDR bitte das hier verwenden:
git clone https://github.com/wirbel-at-v…tal/vdr-cChannel-Name.git
identisch zu:
vdr-2.6.6 (ohne Patches)
+ changes in cChannels.c for cChannel::Name() (wirbel + kls)
-----------------------------------------------------------------------------------
Du kannst aus beiden repos auch einfach die letzten commits als Patche downloaden..