softhdcuvid jetzt mit VAAPI und HDR support

  • Ich habe das Plugin mal versuchsweise paketiert - dabei ist mir aufgefallen, dass es einen Segfault gibt, wenn man sich nur für seinen Hilfetext interessiert:


    Sieht so aus, als würde er im Destructor versuchen Dinge aufzuräumen, von denen ich nicht sicher bin, ob er die für die Ausgabe überhaupt braucht:

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • kannst du für unsere Tests noch einmal bitte die Eckpunkte bestätigen jojo, nicht das wir im Dunkeln rumstochern


    Also die drm Version des Plugins spielt ohne X Server, und wenn man erstmal das HDR außer Acht lässt dann tut es auch ein mainstream 5.3 Kernel wie zB aus ubuntu fokal 20.04?


    Müssen wir dem Plugin dann noch irgendwas mitgeben damit es das Display und das Pulseaudio Gerät findet?


    Mit dem softhdvaapi läuft das sehr prima auf dem NUC8, hab die libplacebo allerdings wieder rausgenommen, ich finde die Bildqualität ist damit unter aller Kanone - weiß gar nicht wo ich da überall drehen soll damit das wieder passt. Mit der Verision ohne libplacebo spielt es dagegen in der nvidia Klasse, hier auch ohne jegliche Ruckler oder andere Zicken...


    Gruß Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • CKone Ja die DRM Version läuft mit jedem Kernel wenn man HDR außer Acht lässt. Sie läuft ohne X Server. Der X Server darf aber nebenbei noch laufen wird aber nicht genutzt.


    Bei DRM sollte man mit -g die gewünschte Auflösung mitgeben.Da hier auf der Konsole gestartet wird ist dies sinnvoll.

    Zusätzlich kann man noch die Refreshrate mit -r einstellen. Default ist hier 50 Hz

    Und letztlich kann man noch den Connector mit -C auswählen. Das ist sinnvoll wenn mehrere Monitore angeschlossen sind. Default ist hier der erste der Connected ist.

    Mit -g und -r wird ausgewählt welche Modline man einstellen will. D.h. die Werte müssen in der Modline vorhanden sein. Welche es aktuell gibt sieht man mit modetest -c unter modes:


    Für Audio gelten für alle Varianten die bisherigen Parameter. Also mit -a die Analogausgabe und mit -p das Passthrough Device


    Ich habe noch ein paar fixes gemacht und die Option -C aktiviert.


    Bzgl. Placebo und den Parametern ist es nicht so schwer wie es aussieht. Leider sind die defaults nicht optimal und man muss die Scaler nachjustieren damit man ein optimales Bild bekommt. Ich würde im ersten Anlauf mal alle Scaler auf bilinear einstellen. Das sollte das gleiche Ergebniss bringen wie ohne Placebo. Danach kann man versuchen die Scaler zu verbessern z.b. auf lanczos. Leider stürzt libplacebo mit vaapi bei einigen Scalern ab. Das liegt an der fehlerhaften opengl Implementation von Intel. Wenn das passiert dann ist aber der Scaler leider schon in der setup.conf eingetragen. Deswegen sollte man vorher die setup.conf sichern und wenn man einen Scaler getroffen hat der den VDR umbringt, dann muss man die gesicherte setup.conf wieder zurückspielen. Ich hoffe das libplacebo das noch verbessert und keine Scaler anbietet die nicht laufen unter Intel.


    mfg

    jojo61

  • Kann es sein, dass im Makefile fälschlicherweise nicht gegen die libEGL gelinkt wird, wenn softhddrm gebaut wird? CKone und ich hatten da einen missing Symbol Error:

    Code
    Dec 20 11:12:41 bionic vdr: [1115] loading plugin: /usr/lib/vdr/plugins/libvdr-softhddrm.so.2.4.1
    
    Dec 20 11:12:41 bionic vdr: [1115] ERROR: /usr/lib/vdr/plugins/libvdr-softhddrm.so.2.4.1: undefined symbol: eglGetCurrentDisplay
    
    Dec 20 11:12:41 bionic vdr[1115]: vdr: /usr/lib/vdr/plugins/libvdr-softhddrm.so.2.4.1: undefined symbol: eglGetCurrentDisplay
    Diff: Makefile.diff
    Index: vdr-plugin-softhddrm-2.1.0+git20191212-8-d2dedb4/Makefile
    ===================================================================
    --- vdr-plugin-softhddrm-2.1.0+git20191212-8-d2dedb4.orig/Makefile      2019-12-12 11:31:40.000000000 +0100
    +++ vdr-plugin-softhddrm-2.1.0+git20191212-8-d2dedb4/Makefile   2019-12-16 15:10:05.377770126 +0100
    @@ -164,6 +164,7 @@
     CONFIG += -DUSE_DRM -DVAAPI
     _CFLAGS += $(shell pkg-config --cflags libdrm)
     LIBS += -lgbm -ldrm
    +LIBS += -lEGL
     endif

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Bei mir brauchte ich das nicht anzugeben.Ich nutze Suse, könnte daran liegen. Ich bau es aber ein.


    Danke für den Hinweis

    jojo61


    Könnte aber auch daran liegen das ihr im Makefile nur DRM ausgewählt habt. Bei mir war zusätzlich noch VAAPI ausgewählt.

  • Könnte aber auch daran liegen das ihr im Makefile nur DRM ausgewählt habt. Bei mir war zusätzlich noch VAAPI ausgewählt.

    Ja, ich lasse die einzelnen Plugins getrennt bauen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich wollte softhdvaapi auch mal ausprobieren, bekomme aber beim Start direkt ein Shader-Compile Error und kein Bild:

    Skin ist mittlerweile das VDR Default Skin, CPU/GPU ist ein i3-8300, VAAPI=1, LIBPLACEBO=0

    Ich dachte das liegt am ausgeschalteten libplacebo, aber mit libplacebo 0.5.0 compiliert es nicht mehr

  • so, mal ein aktueller Stand zu vdr-plugin-softhddrm, derzeit jetzt mit UHD HDR TV, dafür aber noch ohne den intel-drm-kernel:


    - unter yavdr haben wir kein Bild bekommen ohne den X Server am Start zu hindern, das mag aber auch durch die Architektur begründet sein

    - Ton war etwas tricky, geholfen hat am Ende das alte Vorgehen zu pcm.51to20: http://www.vdr-wiki.de/wiki/in…Softhddevice-plugin#Audio

    - insgesamt fühlt sich das schon noch runder an als vdr-plugin-softhdvaapi, was aber auch schon gut ist.

    - wenn ich länger auf einem UHD Testsender stehe dann kommt nach einiger Zeit so ein grünes bzw grün verschneites Bild. War unter softhdvaapi auch schon so: weiß nicht ob der nuc bei 60 Grad da zu warm wird oder wo der Schuh drückt. Mit 1920x1080 Inhalten passiert das nicht.

    - sehr geil ist das unter beiden Plugins die atmo Schnittstelle weiter funktioniert, Jörg hat schon eine Erweiterung ins seduatmo eingechecked, für vdrboblight ist das noch anhängig.


    Enttäuscht bin ich momentan von den vorhanden skindesigner skin (insbesondere die mit zapcockpit Unterstützung), weiß aber nicht ob es am intel Treiber oder am UHD liegt: shady und estuary4vdr gehen gar nicht, die meisten Flächen sind entweder tiefschwarz oder vollkommen transparent. Einzig matrixHD wirklich funktioniert tadellos. Alexander hatte den Hinweis das es womöglich an den dort verwendeten Vector Grafiken liegt - hier werde ich mal Tomas ansprechen ob er da eine Idee hat was sonst noch an shady anders ist.


    Alles in allem bin ich schon sehr zufrieden, vielen Dank an jojo, aber auch nicht weniger an Alexander der sich die Zeit genommen hat das mühselig mit mir zu debuggen, und letztendlich auch an horchi für die schnelle Anpassung seines Plugins.


    Als nächstes hoffe ich das es zeitnah einen passende intel-drm-kernel für ubuntu gibt der der uns große Patchorgien erspart :]


    Gruß Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • FireFly Du musst die drirc als .drirc in dein Homeverzeichnunss legen. Dann sollte es mit den Shadern klappen.


    CKone Danke für das Feedback. Am Audio habe ich seit den ersten Tagen nichts verändert. D.h. alle Probleme die die Version von Johns hat/hatte sind auch noch hier drin. Wenn es da Patches gibt dann bau ich das gerne ein. Leider ist der Skindesigner eine ewige Baustelle. Ich hatte dafür mal einen Patch veröffentlicht, weiss aber nicht ob der nun eingebaut wurde. Ich schau mir shady und estuary4vdr mal an. Aber so schlimm wir du es geschrieben hast habe ich es nicht in Erinnerung. Allerdings nutze ich den Skindesigner nicht produktiv :)


    Bin gerade dabei die Raspi Version noch zu integrieren und dann sollte das ganze mal etwas zum abschluss kommen. Leider unterstützt ffmpeg den v4lm2m decoder beim Raspi nur in Software. Deswegen muss ich wohl doch mmal einbauen. Die Version mit v4lm2m ist fertig und läuft mit und ohne drm :)


    mfg

    jojo61

  • ich glaube das mit dem skindesigner ist eher ein Problem der skalierten skin als vom frontend, werde die drm version nachher noch mal in 1920x1080 starten und schauen wie das da ausschaut. Dein patch ist in jedem Fall drin in meinem skindesigner, hab ich kontrolliert.


    Beim Audio gab es immer ein Problem mit dem 5.1 Downmix, das schlägt vor allem dann durch wenn es nur eine Tonspur gibt (zB RTL HD wenn die in 5.1 senden) - die letzten Jahre haben wir das von pulseaudio machen lassen aber für alsa bedarf es da dieser Krücke. Wir schauen aber nochmal ob wir nicht doch besser pulse weiternutzen können.


    Wenn du was hörst wegen der Integration deiner Patche in den drm-intel sag bitte Bescheid, dann schauen wir da auch.


    Gruß Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • FireFly Du musst die drirc als .drirc in dein Homeverzeichnunss legen. Dann sollte es mit den Shadern klappen.

    Danke, damit bekomme ich ein Bild. Ich hatte die Infos zu der Datei zwar gelesen, aber nicht mit meinem Problem in Verbindung gebracht.

    Jetzt bleibt das Bild stehen, wenn das OSD aufgemacht wird (und OSD erscheint keins, aber auch keine Fehlermeldung im Log), das muss ich mir später noch mal genauer ansehen.

  • Der Skindesigner kann ja von sich aus kein UHD. Da musst du in jedem Fall dann das OSD fest auf 1920x1080 einstellen. Das sollte im Setup machbar sein.


    mfg

    jojo61


    merkwürdig, matrixhd läuft hier super mit voller Auflösung ;)


    werde später shady nochmal in „Klein“ versuchen.

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Jetzt bleibt das Bild stehen, wenn das OSD aufgemacht wird

    Da sieht mir immer noch nach einen Problem mit dem OSD aus. Da wird dann das OSD angezeigt und das im Hintergrund laufende Video nicht mehr durchgereicht. Das ist wohl ein alphablending Problem. Welche Version nutzt du denn ?

    Und kommentiere LIBPLACEBO mal mit # aus dem Makefile anstatt es auf 0 zu setzen.

  • ups, kannst du mir sagen wo ich das finde? - mir ist so als ob ich das früher schon mal gemacht habe.


    habs gefunden.


    Macht aber keinen Unterschied.

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



    Einmal editiert, zuletzt von CKone ()

  • also, ich habe genau diesen Effekt, also nix neues!


    softhddevice <> 4k Auflösung <> skindesginer - OSD Problem

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Da sieht mir immer noch nach einen Problem mit dem OSD aus. Da wird dann das OSD angezeigt und das im Hintergrund laufende Video nicht mehr durchgereicht.

    Das ist wohl ein alphablending Problem. Welche Version nutzt du denn ?

    Und kommentiere LIBPLACEBO mal mit # aus dem Makefile anstatt es auf 0 zu setzen.

    Also intel_gpu_top zeigt noch Render-Last an wenn das Bild stehen bleibt, das spricht für ein alphablending Problem. Dein Plugin habe ich gestern ausgechecked, OS ist 0pensuse 15.1 mit ffmpeg 4 von Packman.

    LIBPLACEBO war bereits mit # auskommentiert.

    glxgears zeigt auch was an (50 fps), da ist das Bild dann weg und kommt auch nicht mehr wenn man glxgears abbricht. Beim Stoppen des VDR wird ganz kurz das aktuelle Fernsehbild angezeigt, vermutlich weil das OSD dann zugemacht wird.

    Fehlt vielleicht noch irgendein Paket?

  • also, ich habe genau diesen Effekt, also nix neues!


    softhddevice <> 4k Auflösung <> skindesginer - OSD Problem

    Ja unter Intel kann ich es reproduzieren. Bei Nvidia tritt es nicht auf. Bei mir tritt es aber nur auf wenn ich die Bildschirmauflösung ändere. Z.B. von Fullscreen nach Window oder umgekehrt. Wenn man dann das skin ändert geht es wieder richtig.


    Kannst du mal testen ob das mit der DRM Version auch so ist ? Da ist das Contextsetting anders.



    FireFly Ich nutze auch Suse 15.1 und da funktioniert alles. Welches Farbtiefe hast du denn bei X eingestellt (24 oder 30 ) ?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!