[softhddevice-drm-gles] Raspberry 4 und 5

  • Ich habe mir den Code mal etwas angesehen, muss dazu aber sagen, dass ich keinerlei C-Kenntnisse besitze.

    In video_drm.c existiert bereits eine Methode, die die verfügbaren Auflösungen ausliest:

    Wäre es nicht ein leichtes, diese Auflösungen im Setup des Plugin anzubieten und dann entsprechend umzuschalten? Also genau so wie es rpihddevice macht. Das hätte den Vorteil, dass man ohne Neustart oder Editieren von scripten die Auflösung umschalten kann.

  • Die Auswahl der Auflösung/Frequenz läuft folgendermaßen:

    Zuerst wird nach der Auflösung gesucht, die man dem Plugin als Option beim Start mitgibt: "-d display resolution (e.g. 1920x1080@50)"
    Dann wird geprüft, ob es Auflösungen mit 50Hz gibt. Falls ja, wird die mit der größten Breite gewählt. Falls nein, wird nochmal mit 60Hz getestet. Und wenn es nichts mit 50 oder 60Hz gibt, nimmt er die breiteste mit der erstmöglichen Frequenz - wobei man da über Sinnhaftigkeit sprechen kann.

    Ich verstehe den Anwendungsfall noch nicht ganz, warum man per Menu die Auflösung ändern wollte? Eine Änderung in einer Konfigurationsdatei sollte hier doch ausreichen - auf welchem Weg auch immer man da ran kommt. Bei einer Änderung per menu muss in jedem Fall der renderer neu initialisiert werden. Wie trivial das ist, weiß ich noch nicht, aber es würde sich anbieten, das im Zuge von detach/attach mit einzubauen...

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Ich verstehe den Anwendungsfall noch nicht ganz, warum man per Menu die Auflösung ändern wollte? Eine Änderung in einer Konfigurationsdatei sollte hier doch ausreichen - auf welchem Weg auch immer man da ran kommt. Bei einer Änderung per menu muss in jedem Fall der renderer neu initialisiert werden. Wie trivial das ist, weiß ich noch nicht, aber es würde sich anbieten, das im Zuge von detach/attach mit einzubauen...

    Einfaches Beispiel: Ich habe in der Garage einen HDMI 2x2 Splitter mit einem 4K LG TV und 720p Beamer installiert. Wenn ich nun den Beamer dazuschalte, möchte ich gerne die Auflösung des VDR auf 720p stellen. Wenn ich dann wieder nur auf dem LG schaue, möchte ich natürlich 4K haben.

    Ich verstehe natürlich, dass das Thema jetzt nicht das wichtigste ist, aber jedes Gerät mit einem Videoausgang bietet die Möglichkeit, die Auflösung über die Fernbedienung einzustellen. Stell Dir vor, du müßtest dich beim AppleTV oder der Playstation 5 jedes Mal per SSH verbinden und eine config Datei bearbeiten :)

    Vielen Dank nochmal für Deine Arbeit. Ich würde Dich gerne mehr unterstützen, besitzt Du eine Wunschliste auf amazon.de oder so?

  • Oh, was mir noch aufgefallen ist: Um überhaupt eine 4K-Auflösung verwenden zu können, muss ich in der config.txt folgendes setzen:

    hdmi_enable_4kp60=1

    Nach meinem Verständnis betrifft dieser Eintrag jedoch nur die Aktivierung von 60Hertz bei 4K, also 50Hertz sollte auch ohne diesen Eintrag gehen. Allerdings verwendet das Plugin ohne den oben genannten Eintrag nur 1080p.

    Hast Du dafür eine Erklärung?

  • Ok, verstanden. Da bei mir jeder VDR seinen eigenen Fernseher hat, stellt sich die Frage hier nicht. Unterstützen kannst du indem du testest und Bugs meldest oder selbst Code schreibst.

    Und ja, ich habe eine Amazon-Wunschliste - aber die ist nicht dafür gedacht, dass mir jemand Wünsche davon erfüllt - falls du darauf hinauswolltest. Ich beschäftige mich mit VDR weil es mir Spaß macht. Ich werde auch nicht mehr Zeit investieren, wenn es dafür externe Anreize gibt... Ich denke, so ist es bei allen anderen hier auch. Im Grunde verfolge ich damit lediglich einen egoistischen Selbstzweck. Ich baue mir das so, wie ich es haben will - sofern es mir mit meinen Kenntnissen möglich ist. Und das mache ich dann, wenn ich Zeit und Lust dazu habe. Aber natürlich erfülle ich auch gerne Wünsche anderer, weil ich froh bin, wenn auch andere davon einen Nutzen haben. Die Prioritäten dafür setze ich aber selbst ;)

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Oh, was mir noch aufgefallen ist: Um überhaupt eine 4K-Auflösung verwenden zu können, muss ich in der config.txt folgendes setzen:

    hdmi_enable_4kp60=1

    Nach meinem Verständnis betrifft dieser Eintrag jedoch nur die Aktivierung von 60Hertz bei 4K, also 50Hertz sollte auch ohne diesen Eintrag gehen. Allerdings verwendet das Plugin ohne den oben genannten Eintrag nur 1080p.

    Hast Du dafür eine Erklärung?

    Ja und Nein. Der Ablauf wie ausgewählt wird steht oben. Wäre interessant, was als höchste 50Hz Auflösung angeboten wird. Wenn du "modetest" drauf hast, kannst du mit "modetest -c" nachsehen, was es alles gibt.

    Wenn da eine 4K@50Hz drin ist und die Auflösung nicht manuell gesetzt wird, stimmt evtl. was mit dem Code nicht, wobei ich auf die Schnelle auch keinen Fehler sehe.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

    Edited once, last by rell (April 25, 2025 at 1:30 PM).

  • Und ja, ich habe eine Amazon-Wunschliste - aber die ist nicht dafür gedacht, dass mir jemand Wünsche davon erfüllt - falls du darauf hinauswolltest. Ich beschäftige mich mit VDR weil es mir Spaß macht. Ich werde auch nicht mehr Zeit investieren, wenn es dafür externe Anreize gibt... Ich denke, so ist es bei allen anderen hier auch. Im Grunde verfolge ich damit lediglich einen egoistischen Selbstzweck. Ich baue mir das so, wie ich es haben will - sofern es mir mit meinen Kenntnissen möglich ist. Und das mache ich dann, wenn ich Zeit und Lust dazu habe. Aber natürlich erfülle ich auch gerne Wünsche anderer, weil ich froh bin, wenn auch andere davon einen Nutzen haben. Die Prioritäten dafür setze ich aber selbst ;)

    Entschuldige bitte, so sollte das nicht rüberkommen. Ich möchte nichts "kaufen". Ich wollte mich lediglich damit bedanken.

  • Entschuldige bitte, so sollte das nicht rüberkommen. Ich möchte nichts "kaufen". Ich wollte mich lediglich damit bedanken.

    Alles gut :) Als Dank reicht mir, dass du es ausprobierst und hernehmen möchtest und Rückmeldungen gibst.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Ja und Nein. Der Ablauf wie ausgewählt wird steht oben. Wäre interessant, was als höchste 50Hz Auflösung angeboten wird. Wenn du "modetest" drauf hast, kannst du mit "modetest -c" nachsehen, was es alles gibt.

    Wenn da eine 4K@50Hz drin ist und die Auflösung nicht manuell gesetzt wird, stimmt evtl. was mit dem Code nicht, wobei ich auf die Schnelle auch keinen Fehler sehe.

    Ich habe gerade nochmal recherchiert: Ohne den Eintrag

    Code
    hdmi_enable_4kp60=1

    werden nur 30Hz bei 4K unterstützt. Sucht das Plugin nur noch 50Hz und 60Hz? Dann wäre das natürlich die Erklärung.

  • 30Hz-Auflösungen werden nur durchforstet, wenn keine Auflösung mit 50 oder 60Hz gefunden wird. Die müsstest du dann manuell angeben. 30 und 60Hz sind generell eh nicht optimal, da wir es ja überwiegend mit 25/50Hz Material zu tun haben....

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • 30Hz-Auflösungen werden nur durchforstet, wenn keine Auflösung mit 50 oder 60Hz gefunden wird. Die müsstest du dann manuell angeben. 30 und 60Hz sind generell eh nicht optimal, da wir es ja überwiegend mit 25/50Hz Material zu tun haben....

    Ok, sehe ich auch so. Dann wäre das Einfügen der Option in die config.txt etwas für die MLD6. Danke.

  • Ich habe grade mal eine alte Version (0.3.9) auf dem RPI4 getestet. Mit RTL (576i) auf DVB-S kann ich das nicht nachstellen. Auch nicht mit anderen SD interlaced Sendern... Ich schaue mal, was sich seit 0.3.9 getan hat, und bräuchte dann evtl. logs, falls ich es nicht reproduzieren kann.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Ok, ich nutze ja die MLD6. Eventuell liegt es an ffmpeg? Hier die Version, die bei der MLD6 installiert ist:

  • Mir ist noch aufgefallen, dass das Plugin abstürzt, wenn der TV nicht angeschaltet ist. Also wenn der VDR startet, wenn der TV nicht an ist.

  • Ok, ich nutze ja die MLD6. Eventuell liegt es an ffmpeg? Hier die Version, die bei der MLD6 installiert ist:

    Kann an ffmpeg liegen oder aber auch an den Commits von softhddevice-drm-gles zwischen 0.3.9 und aktuell. Ich finde da zwar einige, die sich mit drm beschäftigen (kann der decoder, deinterlacer oder drm sein), aber ich verstehe nicht, warum es das Problem nur mit geöffnetem OSD gibt. Das funkt ins decoding/deinterlacing eigentlich gar nicht rein und rendert das OSD in einem eigenen Thread. Es wird dann "nur" zusätzlich zum Video beim Pageflip mit angezeigt. ffmpeg nutze ich 7.1, d.h. einen minimal älteren Stand als https://github.com/LibreELEC/Libr…mpeg/package.mk, mit den patches von https://github.com/LibreELEC/Libr…peg/patches/rpi

    https://github.com/jc-kynesim/rpi…test/7.1.1/main ist der aktuellste Stand für rpi-ffmpeg.

    Wenn ich Zeit habe, teste ich das aktuelle softhddevice-drm-gles. Gibt es bei mld die Möglichkeit, logs anzuschalten bzw. gibts da eine debug Version, die du einfach testen könntest?

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Mir ist noch aufgefallen, dass das Plugin abstürzt, wenn der TV nicht angeschaltet ist. Also wenn der VDR startet, wenn der TV nicht an ist.

    Bekanntes Problem. Ich habe es bisher nicht geschafft, dass softhddevice auf dem rpi4 startet, wenn kein DRM connector und damit auch keine Modes gefunden werden. Man kann das umgehen, wenn beim Start eine edid-bin geladen wird (https://wiki.libreelec.tv/configuration/edid). Evtl. müsste man dann detached starten oder ähnliches, aber da bin ich noch nicht soweit. Wie es dann mit audio aussieht, wenn der TV nicht an ist, weiß ich aktuell nicht.

    Auf dem Rockchip habe ich das Problem nach meiner Erinnerung nicht - oder es hängt vom TV ab...

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Kann an ffmpeg liegen oder aber auch an den Commits von softhddevice-drm-gles zwischen 0.3.9 und aktuell. Ich finde da zwar einige, die sich mit drm beschäftigen (kann der decoder, deinterlacer oder drm sein), aber ich verstehe nicht, warum es das Problem nur mit geöffnetem OSD gibt. Das funkt ins decoding/deinterlacing eigentlich gar nicht rein und rendert das OSD in einem eigenen Thread. Es wird dann "nur" zusätzlich zum Video beim Pageflip mit angezeigt. ffmpeg nutze ich 7.1, d.h. einen minimal älteren Stand als https://github.com/LibreELEC/Libr…mpeg/package.mk, mit den patches von https://github.com/LibreELEC/Libr…peg/patches/rpi

    https://github.com/jc-kynesim/rpi…test/7.1.1/main ist der aktuellste Stand für rpi-ffmpeg.

    Wenn ich Zeit habe, teste ich das aktuelle softhddevice-drm-gles. Gibt es bei mld die Möglichkeit, logs anzuschalten bzw. gibts da eine debug Version, die du einfach testen könntest?

    Eventuell könnte hier das MLD Team das aktuelle 7.1.1 FFMpeg bauen und zur Verfügung stellen? rfehr

Participate now!

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