Posts by shofmann

    MarkusE, anbei erst einmal ein Extrakt aus dem syslog mit den jeweils letzten drei Einträgen vor dem Crash, der praktisch immer nach Einträgen von SkinNopacity erfolgt ist:

    Davor findet sich nichts Interessantes, nur jeweils ellenlange Abfolgen von Zugriffen des Skins auf diverse Logo-Dateien.


    Nach euren letzten Posts scheint sich die Vermutung zu erhärten, dass die Crashes mit der String-Move-Erweiterung zusammenhängen könnten... bei mir eben innerhalb von Nopacity.


    Hat schon mal jemand den dazugehörigen Commit probehalber revertiert, und hat das geholfen?


    Danke & Grüße

    Stefan



    PS: Ich bin leider kein ausgesprochener C++-Guru und habe deshalb mal ein wenig gegoogelt. Wenn ich die folgende Aussage richtig verstanden habe:

    Quote

    Rvalue references support the implementation of move semantics, which can significantly increase the performance of your applications. Move semantics enables you to write code that transfers resources (such as dynamically allocated memory) from one object to another. Move semantics works because it enables transfer of resources from temporary objects: ones that can't be referenced elsewhere in the program.

    ...dürfen keine doppelten Bezüge auf das zu verschiebende Objekt bestehen. Kann das im Kontext des VDR und seiner Plugins denn sichergestellt werden, und könnte das für die Crashes ursächlich sein?


    Oder bin ich mit meinem Gedanken auf einer völlig falschen Spur?

    ich vermute es liegt an Deinem Start-Script.

    Das Skript läuft seit Jahren unverändert ohne Probleme. Warum sollte es also gerade jetzt Probleme verursachen? Und mehr als den VDR starten kann es letztlich ja auch nicht.


    Wenn das Programm beim zweiten Mal abstürzt, hätte ich eher eine andere Vermutung: Das Einlesen der Aufzeichnungen dauert beim ersten Mal recht lange, weil Linux alle Dateien von der Platte einlesen muss (erster Zugriff). Beim Neustart sind viele Daten aber im scon Cache und das Einlesen geht viel schneller. Eventuell also eine Race condition?


    MarkusE: Was genau verstehst du unter dem "Backtrace" (syslog?) bzw. wie kann ich diesen gegebenenfalls erzeugen?


    Danke und Grüße

    Stefan

    Vielen Dank an Klaus für die neue Version. Ganz enthusiastisch habe ich sie zusammen mit allen von mir genutzten Plugins gleich installiert. Wie immer habe ich vorher mit "make clean" den VDR und alle Plugins zurückgesetzt und anschließend alles sauber "von Scratch" aufgebaut.


    Beim Einschalten bzw. Reboot des Rechners funktioniert alles wunderbar. Doch wenn ich einen VDR-Neustart ausführe (z.B. per "/etc/init.d/vdr restart"), hängt sich der VDR irgendwann beim Einlesen der Aufzeichnungen auf. Mit 2.6.5 passiert das – bei ansonsten gleicher Konfiguration und denselben Plugins – nicht.


    Hat jemand ähnliche Beobachtungen gemacht bzw. eine Idee, woran das liegen könnte?


    Vielen Dank und beste Grüße

    Stefan

    Patch 1:

    Es scheint aber so zu sein, das das dvd-Plugin überhaupt keinen Titel ausgibt, dann bleibt die Fläche über dem Fortschrittsbalken leer.

    Das stimmt. Für mich ist aber die Zeitleiste entscheidend.

    Patch 2:

    Hier ist zu beachten, das dadurch auch ein Bild im Landscape-Format angezeigt werden könnte.

    Für mich passt das, denn meine "Poster" sind im Format 4:3.


    Danke dir

    Stefan

    SkinNopacity zeigt in den Details einer Aufzeichnung auch ein anderes Image nur als das Poster des TV-Scrapers an:

    • In der Listenansicht der Aufzeichnungen ist es das erste JPG-Image, das sich im Verzeichnis der Aufzeichnung befindet.
    • Ruft man dort (oder direkt beim Abspielen) die Info auf, werden im Abschnitt "Bildergalerie" alle JPG-Images des Verzeichnisses angezeigt.

    Deshalb hier noch ein Patch – der wie bei Punkt 1 – bei der Wiedergabe einer Aufzeichnung das erste Image im Verzeichnis auch im Progress-Bar anzeigt:


    0001-Added-support-for-recording-image-to-replay-progress.zip


    Viele Grüße

    Stefan

    kamel5,


    mit dem Commit "Show poster in display replay" wird bei Wiedergabe einer DVD leider kein Progress-Bar mehr angezeigt. Das liegt daran, dass in diesem Fall SetRecording() und damit auch CreatePixmaps2() nicht aufgerufen wird, sodass die Pixmaps für diese Elemente nicht generiert und damit auch nicht angezeigt werden.


    Hier ein Vorschlag einen Fix: 0001-Fixed-missing-progress-bar-for-DVD-replay.zip


    Vielen Dank, viele Grüße und einen guten Rutsch!

    Stefan

    Hallo zusammen,


    hatte die letzten Tage keine Zeit, die Diskussion zu verfolgen. Ich schaue mir das aber in einer ruhigen Minute nochmal an.


    Danke jedenfalls fürs Forschen und den Lösungsansatz.


    Viele Grüße

    Stefan



    PS: Ich habe trotz der Änderung die Fehlermeldung beim letzten Upgrade am Wochenende erneut im Log gefunden. Die Suche geht also weiter...

    Noch ein Nachtrag: Nach dem gestrigen Upgrade auf Kernel 5.15.0-58 ließ sich der vom DKMS gebaute und installierte Treiber nicht mehr laden. Im syslog fand sich eine lange Liste mit Fehlermeldungen wie dieser:

    • saa716x_core: disagrees about version of symbol pci_enable_device
    • saa716x_core: Unknown symbol pci_enable_device (err -22)

    Geholfen hat letztlich, in /usr/src/saa716x-1.0.0 die "historischen" Quellen (saa716x-5.15.zip

    und deren expandierten Baum unter saa716x-5.15) zu löschen und den Treiber an DKMS vorbei manuell zu bauen:

    • ./make.sh --dest /lib/modules/$( uname -r )/updates/dkms

    Dabei die Frage „Clean all before building (y/N)?“ mit „y“ beantworten. Danach werden die Quellen vor dem Bauen erneut heruntergeladen und die von DKMS installierten durch die neu gebauten Treiber ersetzt.


    Nicht ganz unschuldig an diesem Verhalten ist sicherlich auch, dass ich wegen meines etwas langsameren Internet-Zugangs auf das ständige Herunterladen der Quellen im DKMS-Batchbetrieb verzichte (Option --clean, Zeile 97 in make.sh). Für wen das kein Problem ist, möge bei sich bitte das Kommentarzeichen dort entfernen.


    Viele Grüße

    Stefan

    Danke für die Rückmeldung. Deiner Signatur zufolge hast du mit Kernel 6.1 gebaut. Ich war mir nicht ganz sicher, ob das Skript nicht noch irgendwelche Kernel-spezifischen Patches (statt oder in Ergänzung zu dem beigefügten saa716x.diff) gebraucht hätte.


    Vielleicht kann wtor das einordnen.


    Viele Grüße

    Stefan

    Ich habe mal die entscheidenden Schritte, die mit Root-Rechten auszuführen sind, aus der Bash History rekonstruiert:

    • apt-get install dkms

    Damit wird das eventuell schon automatisch installierte zu einem manuell installierten Paket und fällt somit nicht vielleicht irgendwann einmal einem apt autoremove zum Opfer.

    • dkms add -m saa716x -v 1.0.0

    Jetzt noch die Module erstmalig manuell bauen:

    • dkms build -m saa716x -v 1.0.0

    Danach sollten die Module bei jedem Kernel-Update automatisch mitgebaut werden.


    Ich hoffe, dass ich nichts Entscheidendes vergessen habe. Bitte probiert es aus und meldet euch, wenn es knirschen sollte.


    Viele Spaß damit und viele Grüße

    Stefan

    Hallo auch von mir.


    Ich hatte das Skript ebenfalls schon vor ein paar Wochen erprobt, die gebauten Kernel-Module getestet und – weil mich das manuelle Bauen schon seit langem genervt hat – in DKMS integriert. Seitdem kann ich wieder den aktuellen Edge-Kernel 5.15 für Ubuntu 20.04 nutzen und muss nicht bei 5.11 versauern. Probleme habe ich bislang keine beobachtet.


    Sorry, dass ich nicht schon früher Feedback gegeben habe, baermuda hat mich wieder daran erinnert.


    Danke und viele Grüße

    Stefan

    kamel5,


    schaut soweit gut aus und funktioniert, wie es soll. :)


    Mit dem Verschieben der Schriftgrößen-Einstellungen in die Allgemeinen Einstellungen bin ich nicht ganz glücklich, und war aus folgenden Gründen:

    • Das Menü der Allgemeinen Einstellungen ist eh schon riesig. Aber das nur nebenbei, denn gewichtiger sind die nächsten Argumente.
    • Als Teil der Allgemeinen Einstellungen entsteht für die Standard-Schriftart der Eindruck, dass die Größenanpassung generell für jedwede Verwendung dieser Schriftart gelten würde. Tatsächlich gilt sie ja aber nur für Text-Views (Konsolenausgaben).
    • Für alle anderen Kontexte (Kanalwechsel, Wiedergabe von Aufzeichnungen usw.) ist die Einstellung der Schriftgrößen immer in spezifischen Untermenüs angesiedelt. Insofern wäre es für die Konsolenausgabe nur konsequent, dies in gleicher Weise handzuhaben.

    Aus den beiden letztgenannten Gründen hatte ich mich auch für ein eigenes Menü entschieden. Außerdem wären wir flexibler, wenn für Text-Views später noch weitere Einstellungen dazukommen sollten.


    Wenn es aber so bleiben soll, wäre mein Vorschalg, in der Beschriftung deutlich auf die Konsolenausgabe hinzuweisen, beispielsweise:

    • Schriftgröße anpassen - Standard-Schriftart in Textkonsole
    • Schriftgröße anpassen - Festbreiten-Schriftart in Textkonsole

    Noch einige Gedanken zum Code:

    • Da die Festbreiten-Schriftart im OSD-Setup FontFix heißt (was mir nicht bewusst war), wäre es wohl günstig, auch hier diesen Begriff zu nutzen, also fontFixed in fontFix umzubenennen (inkl. der entsprechenden Präfixe).
    • Nachdem du in config.c bei SetFonts() für die Standardschrift den Ternary refaktorisiert hast, würde ich für Text-Views ebenfalls einen Teiler von 30 vorschlagen. Damit kam bei meinen Tests automatisch eine Schriftgröße zustande, die eine Anpassung nur selten notwendig macht; anpassbar sollte die Größe der Standard-Schriftart dennoch bleiben. (Leider ist mir das erst nach meinem Post eingefallen.)

    Danke nochmals und viele Grüße

    Stefan

    Die Kritik ist durchaus berechtigt. Aber kamel5 hat die Beweggründe für Evolution statt Revolution (also nur sukzessiv sanfte Anpassungen am Code) ganz gut charakterisiert. Ich habe jedenfalls versucht, die Ergänzungen möglichst "minimalinvasiv" zu halten und den vorgefundenen Gegebenheiten und Konventionen weitgehend zu folgen.


    kamel5: Wenn du den Fixed-Font sowieso von den VDR-OSD-Einstellung ableiteten möchtest, hast du damit ja die Blaupause, wie man das für den Standardfont (die Initialisierung von "fontDefaultName" in config.c) ebenfalls machen müsste, richtig?


    Viele Grüße

    Stefan

    Im Prinzip habe ich zunächst einen Fixed-Font für Text-Views mit festen Schriftbreiten ("Konsolenausgabe") eingeführt. Im Setup lässt sich für Konsolenausgaben die Schriftgröße für die Standard- und Festbreiten-Schriftart noch anpassen, sodass auch der "normale" Font in akzeptabler Größe ausgegeben werden kann, falls einmal keine Festbreiten-Schriftart verwendet werden soll.


    Da, wie du erwähnt hast, das OSD für SetText() ein Flag für Fixed-Fonts übergibt, habe ich die betroffenen Klassen zudem so angepasst, dass diese Information durchgereicht und für die Konsolenausgabe zur Fontauswahl herangezogen wird.


    Das war es im Wesentlichen schon.


    Viele Grüße

    Stefan

    Hallo,


    hier meine Lösung für die Konsolenausgabe:



    Nopcacity-TextView.zip


    Wenn der Code für dich OK ist, würde ich mich freuen, wenn du ihn in die offizielle Code-Basis übernnehmen würdest. Das würde mir künftig eine Menge Remerges ersparen... :]


    Viele Grüße

    Stefan


    PS: Ich habe noch ein paar andere Kleinigkeiten angepasst, in der Regel alles konfigurierbar. Darf ich dir die vielleicht auch mal zukommen lassen?


    PPS: Der Patch bezieht sich auf meine lokal angepasste Version. Ich hoffe, er lässt sich dennoch gut mit der offiziellen Code-Basis verheiraten, da keine meiner lokalen Anpassungen tangiert sein sollten. Nur die Übersetzungen sind immer etwas heikler...

    Hallo kamel5,


    erst einmal ein gutes neues Jahr und vielen Dank für die aktuelle Version 1.1.14!


    Ich verwende in der Übersicht der Aufzeichnungen vielfach Skripte, die ihre Ergebnisse in einem Textfenster ausgeben sollen. nOpacity verwendet für diese Textanzeige leider einen riesig großen Font mit variabler Zeichengröße mit viel zu großer Schrift.



    Leider habe ich noch nicht herausgefunden, wie man das ändern kann. Wäre es vielleicht möglich, für solche Textfenster in einer kommenden Version einen zweiten Font (der dann – ähnlich wie in den OSD-Einstellungen – einen festen Zeichenabstand haben könnte) samt Schriftgröße in den Einstellungen zu verankern?


    Wenn ich wüsste, welche Funktion im Code vom VDR zum Öffnen eins solchen Textfensters aufgerufen wird, könnte ich es notfalls auch selbst versuchen...


    Danke schon einmal und viele Grüße

    Stefan