[rpihddevice] OSD mit GPU-Unterstützung

  • Ich habe gestern Abend übrigens noch zwei Probleme entdeckt:
    - Save/RestoreRegion funktioniert nicht - obwohl ich das mal erfolgreich getestet habe...
    - Bei LCARS ist beim erstmaligen Anzeigen der Kanalinfo der Hintergrund nicht komplett eingefärbt. Da ich meistens ohne Video teste, ist mir das bisher nicht aufgefallen…


    Die beiden Probleme sind gefixt und die Änderungen eingecheckt - damit sollten nun alle mitgelieferten Skins funktionieren. Bei mir läuft auch EnigmaNG beschleuningt, allerdings noch ohne Kanallogos.


    @Klaus: Vielen Dank für deine Erklärungen - ich versuche die Tage mal, mir ein Konzept zurecht zu legen. Müsste ich nur eine Pixmap unterstützen, wären die Änderungen minimal. Allerdings kreiert z.B. skindesigner eine neue Pixmap auf Layer 0, die dann parallel zur default-Pixmap im VDR gerendert wird - somit muss die GPU-Unterstützung in der Lage sein, mehrere Pixmaps unabhängig zu bedienen.


    Es sollte aber möglich sein, pro Pixmap eine eigene Surface zu erstellen und darauf zu zeichnen. Erst beim Flushen könnte ich dann den Inhalt als Bild mit der eingestellten Transparenz (und den ganzen Draw/View-Port und Kachel-Parametern) in korrekter Reihenfolge in die finale Surface kopieren. Soweit der Plan - mal schauen, ob sich das auch so umsetzen lässt. Das wird aber etwas Zeit und ein paar kreative Jogging-Runden brauchen...


    Bis dahin bin ich aber froh um Rückmeldungen zur aktuellen Implementation!


    Gruss
    Thomas

  • Aber hast du mal versucht, der GPU mehr Speicher zuzuweisen?

    Mehr als 256 MB? Was hast du bei deinem Rpi eingestellt?

    Oder hast du noch XBMC/omxplayer aktiv?

    Nein, das Plugin sollte die GPU für sich alleine haben.


    Ich schau später mal, ob es mit der neuesten Version aus dem Git noch auftritt.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Quote

    Kann man sich die freien Ressourcen von OpenVG irgendwie anzeigen lassen?


    vcdbg reloc


    Sollte gehen...


    Marten

    vdr experimental, Femon, vdr live, acpi-wakeup, vompserver, undelete, epgsearch, vdr-burn, Raspberry Pi und Vompserver Windows Client (build from git)

  • Auch 265MB... damit kann ich zwei Fonts gleichzeitig nutzen, kommt ein dritter hinzu, werden die bereits geladenen gelöscht.


    Nur zur Info:
    In den VDR-Core Skins werden häufig nur der normale Font und der SmallFont genutzt. Der Festbreitenfont wird glaub ich nur im Menü bei SetText genutzt.
    In anderen Skins (wie flatPlus oder nopacity) sind 3 und mehr Fonts keine Seltenheit. Die Frage ist, ist ein Font schon unterschiedlich wenn sich die Größe ändert? In flatPlus nutze ich immer die festeingestellten Fonts aus dem OSD-Menü aber ich nutze innerhalb des OSD unterschiedliche Größen von diesen einen Font. Wenn das für dich dann unterschiedliche Fonts sind dann kann es allein bei der Kanalinfo schon bis zu 4 Fonts geben nur weil die Größe unterschiedlich ist.


    Grüße
    Martin


  • Auch 265MB... damit kann ich zwei Fonts gleichzeitig nutzen, kommt ein dritter hinzu, werden die bereits geladenen gelöscht.


    Was bedeutet das denn für Raspis, die nur 256MB haben?

    SAT Hardware: Gibertini SE75 | DuraSat Dur-Line UK-24 | DD OctopusNET V2 Rack (Firmware 1.1.6) mit MaxS8
    Server: Asus M5A78L-M/USB3 | Sempron 145@2Cores | 8GB ECC RAM | PicoPSU | Debian Stretch 64Bit | VDR 2.4.5 mit SAT>IP, epgsearch, live, markad
    Clients: RaspberryPI 2/3 | Yocto Poky Linux (Openembedded) 3.2+git | Linux Kernel 5.4.72 | VDR 2.4.5 mit SAT>IP, RpiHDDevice, SkinDesigner, Remote, Extrecmenu, Femon, Mlist


    R.I.P: Gigaset M740 mit VDR von open7x0.org

  • Wenn die font so groß sind, kann man vielleicht nur einen Teil zunächst laden. (z.B. ASCII) und den Rest bei Bedarf, wenn er verwendet wird.


    Marten

    vdr experimental, Femon, vdr live, acpi-wakeup, vompserver, undelete, epgsearch, vdr-burn, Raspberry Pi und Vompserver Windows Client (build from git)

  • In den VDR-Core Skins werden häufig nur der normale Font und der SmallFont genutzt. Der Festbreitenfont wird glaub ich nur im Menü bei SetText genutzt.
    In anderen Skins (wie flatPlus oder nopacity) sind 3 und mehr Fonts keine Seltenheit. Die Frage ist, ist ein Font schon unterschiedlich wenn sich die Größe ändert? In flatPlus nutze ich immer die festeingestellten Fonts aus dem OSD-Menü aber ich nutze innerhalb des OSD unterschiedliche Größen von diesen einen Font. Wenn das für dich dann unterschiedliche Fonts sind dann kann es allein bei der Kanalinfo schon bis zu 4 Fonts geben nur weil die Größe unterschiedlich ist.

    Der Witz ist ja, dass die Fonts nun als Vektoren gezeichnet werden - daher spielt die Grösse keine Rolle. Und persönlich bin ich der Meinung - und ich will mich da jetzt auch nirgens rausreden - dass mehr als ein Font aufs Mal aus ästhetischer Sicht selten Sinn macht. Aber das ist natürlich etwas sehr Subjektives, und ich möchte niemanden in seiner Kreativität einschränken. ;)


    Was bedeutet das denn für Raspis, die nur 256MB haben?

    Ich habe den Speicherbedarf noch nicht im Detail analysiert, aber das Plugin sollte natürlich auch auf den A-Modellen funktionieren!


    Wenn die font so groß sind, kann man vielleicht nur einen Teil zunächst laden. (z.B. ASCII) und den Rest bei Bedarf, wenn er verwendet wird.

    Das wäre möglich, aber dazu müsste ich den Font via freetype immer wieder neu öffnen und nach dem fehlenden Zeichen suchen. Könnte man mal versuchen, wenn der Leidensdruck gross genug ist. Aber erst will ich mal herausfinden, wieviel Speicher so ein Font überhaupt belegt. Das sollte ja nicht in die Megabytes gehen...


    Bei mir sind diese und nächste Woche noch die Handwerker im Haus, da hab ich auch keinen Kopf für Software-Entwicklung.
    Aber danach möchte ich mich wieder voller Elan auf die Arbeit an VDR und RasPi stürzen - freu mich schon drauf ;-).

    Dann mach ich mich schon mal auf ein paar Bugreports gefasst… ;)


    Gruss
    Thomas

  • dass mehr als ein Font aufs Mal aus ästhetischer Sicht selten Sinn macht


    Das kann ich nur unterstreichen.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Hier Thomas.
    Habe gerade das aktuelle git gebaut. Leider bekomme ich mit Skinflat kein OSD. Log zeigt nichts an. Mit LCARS klappts prima.


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Hier Thomas.
    Habe gerade das aktuelle git gebaut. Leider bekomme ich mit Skinflat kein OSD. Log zeigt nichts an. Mit LCARS klappts prima.


    Gruß Patrick


    Hast du debug-logging an? Steht wirklich garnichts im Log? Skinflat hat doch aber schonmal auf dem rpi funktioniert soweit ich weiß!


    Grüße
    Martin

  • Mit der letzten Version vom Plugin lief es auch noch.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Hi Patrick


    Habe gerade das aktuelle git gebaut. Leider bekomme ich mit Skinflat kein OSD. Log zeigt nichts an. Mit LCARS klappts prima.

    Das Plugin unterstützt momentan nur die Zeichenfunktionen von cOsd - wenn Skinflat auf eine Pixmap zeichnet, passiert aktuell nichts. Ich habe mich an den mitgelieferten Skins und an der Implementation von dvbhddevice orientiert, weshalb das vergessen ging. Aktuell hilft es, die GPU-Unterstützung abzuschalten, dann sollte alles sein wie vorher.


    Gebt mir ein wenig Zeit, das kommt alles noch...


    Gruß
    Thomas

  • vcdbg reloc


    Sollte gehen...

    Danke, ich habe gerade noch dieses Skript gefunden, das die Ausgabe etwas zähmt: http://www.forum-raspberrypi.d…d-freien-gpu-ram-anzeigen



    Mit VDR OpenSans in Bold und Semi-Bold (zu Finden im Quellpaket des SkinDesigner-Plugin von louis) für die Standard- und Kleine-Schriftgröße scheint es jetzt keine Speicher-Probleme mehr zu geben. Wenn ich das richtig verstanden habe, macht es also Sinn einen "beschränkten" Font zu nutzen, der nur die Zeichen enthält, die man tatsächlich benötigt statt Unicode möglichst komplett abzubilden?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi Thomas.
    Oh stimmt, von der Einstellung hatte ich gelesen. Sorry, total verschwitzt das umzustellen.
    Jetzt klappts wieder ;D


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • N'Abend,


    woran muss ich drehen, wenn folgende Meldung kommt?

    Code
    Nov 20 20:42:48 raspberrypi vdr: [736] rpihddevice: failed to allocate new OVG font!
    Nov 20 20:42:48 raspberrypi vdr: [736] rpihddevice: OVG out of memory - failed to load font!


    Ich benutze die ST:TNG skin und mit 192MB GPUMEM scheint es zu knapp zu werden. Es dauert eine gefühlte Ewigkeit (20..30sec) bis überhaupt das OSD erscheint und beim Blättern "über die Anzeige hinaus" hängt es immer wieder für mehrere Sekunden.



    Ich betreibe den RasPi an einem 1440x900@75p Display im "crop" mode.


    Gruß, ollo

  • Hi ollo

    woran muss ich drehen, wenn folgende Meldung kommt?

    Code
    Nov 20 20:42:48 raspberrypi vdr: [736] rpihddevice: failed to allocate new OVG font!
    Nov 20 20:42:48 raspberrypi vdr: [736] rpihddevice: OVG out of memory - failed to load font!

    Die "out of memory"-Nachricht erscheint, wenn sich OpenVG auch nach dem Löschen der bisher geladenen Fonts über zu wenig Speicher beklagt.


    Ich benutze die ST:TNG skin und mit 192MB GPUMEM scheint es zu knapp zu werden. Es dauert eine gefühlte Ewigkeit (20..30sec) bis überhaupt das OSD erscheint und beim Blättern "über die Anzeige hinaus" hängt es immer wieder für mehrere Sekunden.


    Versuch mal, im OSD-Setup eine gemeinsame Schriftart zu konfigurieren. Wenn ich mich recht erinnere, beinhaltet DejaVuSans alleine schon mehr als 2000 Zeichen. Dein Log zeigt, dass er immer beim Wechseln der Schriftart beim ersten Versuch den neuen Font zu laden scheitert, dann alle löscht, und es schliesslich beim zweiten Mal klappt. Das wiederholt sich dann jedes Mal, wenn die Schriftart wechselt.


    Gruss
    Thomas

  • Mit VDR OpenSans in Bold und Semi-Bold (zu Finden im Quellpaket des SkinDesigner-Plugin von louis) für die Standard- und Kleine-Schriftgröße scheint es jetzt keine Speicher-Probleme mehr zu geben. Wenn ich das richtig verstanden habe, macht es also Sinn einen "beschränkten" Font zu nutzen, der nur die Zeichen enthält, die man tatsächlich benötigt statt Unicode möglichst komplett abzubilden?

    Definitiv. Nur die ASCII-Zeichen zu laden und alles weitere nach Bedarf wäre eine Option, aber "leichtere" Fonts sind mir für den Moment sympathischer… ;)


    Gruss
    Thomas

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!