softhdcuvid jetzt mit VAAPI und HDR support

  • Hi, habe jetzt mal in meiner grub die fixe 1920x1080 rausgenommen und die edid raus, das war ja irgendwie nur für X interessant denke ich, und neu gestartet. Habe nun leider kein Ton mehr, aber darum kümmere ich mich nachher, wenn ich auf den Astra UHD Channel schalte, zeigt mir der Fernseher 1080i HDR/HLG an, was ja schon mal richtig wäre denke ich.


    edit: hatte bis jetzt das plugin mit -g 1920x1080 gestartet, das kann ja nix werden :) habe das jetzt wieder rausgenommen und neu gestartet, jetzt zeigt der fernseher auch korrekterweise 2160/hdr/hlg an. Allerdings läuft es schon nach kurzer Zeit nicht mehr. Angezeigt wird dass der Kanal mit 60Hz läuft, wie ändere ich das auf 50?



    Ich schaue mal wie lange das Bild durchläuft...

  • ok ton konnte ich auch richten indem ich das Verzeichnis /run/user/666 angelegt habte, und die Berechtigungen für user 666 für dieses Verzeichnis vergeben habe.


    Allerdings ist nach kurzer Zeit das Bild schon grün bei mir, und das logfile überflutet mit:

    Dec 31 16:05:26 mainbox vdr[4710]: xcb_connection_has_error() returned true

    Dec 31 16:05:26 mainbox vdr: [4862] [softhddev] vom VDR kommt Clear:

    Dec 31 16:05:26 mainbox vdr[4710]: xcb_connection_has_error() returned true

    Dec 31 16:05:27 mainbox vdr: [4862] [softhddev] vom VDR kommt Clear:

    Dec 31 16:05:27 mainbox vdr[4710]: xcb_connection_has_error() returned true

    Dec 31 16:05:27 mainbox vdr: [4862] [softhddev] vom VDR kommt Clear:

    Dec 31 16:05:27 mainbox vdr[4710]: xcb_connection_has_error() returned true

    Dec 31 16:05:27 mainbox vdr: [4862] [softhddev] vom VDR kommt Clear:

    Dec 31 16:05:27 mainbox vdr[4710]: xcb_connection_has_error() returned true

    Dec 31 16:05:27 mainbox vdr: [4862] [softhddev] vom VDR kommt Clear:

    Dec 31 16:05:27 mainbox vdr[4710]: xcb_connection_has_error() returned true

    Dec 31 16:05:27 mainbox kernel: [ 1166.247655] i915 0000:00:02.0: Resetting vcs0 for hang on vcs0


    Danach ging es wieder weiter, aber das Bild wechselt sich mit grünen pixelmasch und normales Bild ab, schauen kann man da jedenfalls nix :)


    Gerät ist eine NUC7CJYH2. Ein wechsel vom UHD sender auf ein normaler sender ergibt nur noch grünes Bild ohne etwas sehen zu können, ein restart vom VDR hat das wieder gelöst.

  • Das habe ich so erwartet, ist wie bei mir mit dem bionic Kernel. - es gibt von der Stange max bis 5.3.0, das hilft aber nicht. Ich hab momentan diesen 5.5.0 vom 24.12.2019 drin: https://kernel.ubuntu.com/~ker…rm-intel-next/2019-12-24/ damit läuft es ganz gut bis der vdr nach ner guten halben Stunde mit einem OOM einen Neustart hinlegt.


    Ich habe aber auch ein aktuelleres mesa von hier drin: https://launchpad.net/ubuntu/+…1~18.04.1/+build/18127636, glaub aber das hat nix gebracht.


    Achtung der Kernel ist nicht signiert: musst du "Secure Boot" im Bios ausmachen!

    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



    Edited once, last by CKone ().

  • Bitte nach nem VDR restart noch mal den Gegentest: unter QVC UHD läuft 4K ohne HDR wie geschmiert?


    dann haben wir alles schon mal denselben Stand und es liegt nicht an uns :P


    Danke

    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



  • hast du den channel eintrag von QVC bei der Hand?

    Läuft bei dier der VDR auch auf 60Hz? wusste nicht genau wie ich das ding auf 50Hz kriege also habe ich dann halt das Plugin auf 60Hz gestellt, damit ging es besser, aber ich glaube es macht mehr Sinn die Ausgabe und auch das plugin auf 50Hz zu betreiben?

    -r 50 in der 50-softhddrm.conf hat mal nicht funktioniert bei mir :)


    kernel bei mir ist übrigens

    5.4.6-050406-generic und sonst alles von ubuntu 18.04 bzw. was halt über yavdr und dein repo so daherkommt :)

  • eine nicht ganz relevante frage - aber wie schaffe ich es denn jetzt zu kodi zu wechseln aus dem vdr heraus, und beim beenden von kodi wieder zurückzukommen?


    der bisherige aufruf liefert von der commandline folgendes:

    sudo frontend-dbus-send switchto kodi

    [sudo] Passwort für reinhard:

    Traceback (most recent call last):

    File "/usr/bin/frontend-dbus-send", line 11, in <module>

    load_entry_point('yavdr-frontend==0.0.24', 'console_scripts', 'frontend-dbus-send')()

    File "/usr/lib/python3/dist-packages/yavdr_frontend/frontend_dbus_send.py", line 10, in main

    fe = bus.get('de.yavdr.frontend')

    File "/usr/lib/python3/dist-packages/pydbus/proxy.py", line 47, in get

    0, timeout_to_glib(timeout), None)

    GLib.Error: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name de.yavdr.frontend was not provided by any .service files (2)

  • Code
    QVC UHD;MX1:11288:vC23M5O20S1:S19.2E:22000:255=36:256=deu@3:57:0:4230:1:1006:0


    ne läuft auf 50Hz, drm macht das automatisch und dem xserver musste ich für vaapi die Modeline vorgeben sonst hat er gar kein 4K erkannt.



    ein 5.4er Kernel hat bei mit auch immer noch die grünen Flächen gemacht, da ist wohl heftige Entwickung auf dem Treiber momentan. Vllt können wir ja auch mal einen passenden Ubuntu Kernel bauen.


    Ich weiß aber nicht ob das alles zu yavdr lastig hier wird, vllt kann das mal ein Moderator abtrennen in einen separaten Thread.

    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



  • habe jetzt mal QVC hinzugefügt, läuft bei mir auch nicht toll. Stutzig macht mir aber immer noch dass der TV im 50Hz schaltet wenn der NUC gestartet wird, sobald der VDR ins spiel kommt wird 60Hz angezeigt, und habe es nicht geschafft bis jetzt die Ausgabe auf 50 Hz zu trimmen, -r 50 als Option mitgeben tat nicht wirklich :(

  • Ein frohes neues Jahr.


    zu den 50Hz müsste Alexander was sagen, zu deinem NUC entsprechend jojo - ich hab hier einen nuc8i3beh2.


    Die Umschaltung zu kodi geht btw momentan nur mit der vaapi Version, für die drm Verion muss da natürlich was gebaut werden da kodi ja in seiner derzeitige Konfiguration auf X und pulseaudio aufsetzt. Man kann kodi aber wohl auch alternativ im drm Mode betreiben.

    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



  • Ich habe gerade versucht softhddrm auf meinem Haswell-System unter Ubuntu Focal zum Laufen zu bringen - leider mag das Plugin nicht:

    Wenn ich den Laptop-Bildschirm nutze (der nur einen Mode unterstützt, so dass es nicht an der Mode-Umschaltung scheitern kann) bekomme ich folgenden Fehler:

    Code
    Jan 01 13:08:56 yavdr-focal vdr[3199]: [3251]
                                           [softhddev]:SHADER: Compile-time error: Type: 0 -
                                           >0:1(10): error: GLSL ES 3.30 is not supported. Supported versions are: 1.00 >                                       <
    Jan 01 13:08:56 yavdr-focal vdr[3199]: [3251] [softhddev]ERROR compiling shader
    Jan 01 13:08:56 yavdr-focal vdr[3199]: [3251] [softhddev]Could not initiate Shaders
    Jan 01 13:08:56 yavdr-focal vdr[3199]: [3251] [softhddev]OglThread cleanup

    glxinfo sagt auf dem System folgendes:

    Wenn ich die Version 3.3 erzwinge, sieht es so aus:

    Damit scheint die Hardware nicht allen nötigen Features zu unterstützen, oder?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • seahawk1986 Du könntest mal versuchen in shader.h und opeglosd.cpp ganz vorne bei VAAPI die #version auf "#version 3.10 es " zu setzen. Und gib mal mit -C den Connector mit den du haben willst. Wenn 2 connected sind dann könnte es da noch einen Fehler beim automatischen auswählen geben.

    UNd installiere mal die .drirc. Irgendwie ist das nervig mit den vielen GL Versionen.


    reini-at Welche Modes zeigt dem modetest bei dir an. Es wird immer versucht auf 50 Hz zu schalten, aber nur wenn auch eine passende Modeline gefunden wird. Wenn der Fernseher 60 Hz zeigt dann fehlt wohl die passende Modeline für 50 Hz im EDID.


    PS: Wenn der Fernseher das mitmacht dann kann man natürlich auch ein runterskaliertes Bild in HDR-HLG auf 1902x1080 anschauen. Die Bildauflösung hat nichts mit HDR zu tun.


    Hatte nun auch ein OOM mit Travel XP. Mir ist nun aufgefallen das der VDR mit HDR Sender Speicher frisst. Konnte auf die schnelle noch nicht analysieren welcher thread es ist, aber ich vermute es ist der Dekoderthread. Dann wäre es FFMPEG aber das muss ich noch weiter analysieren.

    Kennt jemand ein Programm it dem man den Speicherbedarf einzelner threads sehen kann. htop zeigt es nur für alle gleich an.

    Sieht so aus als ob ffmpeg den Speicher für die HDR side data nicht wieder frei gibt. Oder muss man das selber tun ?

  • I have a memory leak (?) with any cuvid or cuda decoder without HDR, softhdcuvid and mpv too. Just play mpv any hevc file or switch channels on vdr and watch the memory in the "top". Free memory decreases, and used memory grows slowly, but then a swap begins to be used. I have 2 GB of RAM + GT1030.

  • seahawk1986 Du könntest mal versuchen in shader.h und opeglosd.cpp ganz vorne bei VAAPI die #version auf "#version 3.10 es " zu setzen. Und gib mal mit -C den Connector mit den du haben willst. Wenn 2 connected sind dann könnte es da noch einen Fehler beim automatischen auswählen geben.


    UNd installiere mal die .drirc. Irgendwie ist das nervig mit den vielen GL Versionen.

    Danke, wenn ich in allen drei Dateien die Version 310 festlege bekomme ich ein Bild auf dem angegebene Connector.


    Jetzt habe ich noch das Problem zwischen softhddrm und KODI umzuschalten - KODI 18 kann wie es aussieht kein Bild anzeigen, solange die ~/.drirc für softhddrm vorhanden ist, weil dann das Kompilieren der Shader nicht klappt.

    Und bei einem svdrpsend plug softhddrm deta scheint das Plugin nicht alle Ressourcen freizugeben, so dass KODI nur dann ein Bild liefern kann, wenn man es startet, nachdem die ~/.drirc gelöscht bzw. verschoben und der VDR beendet wurde.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Das steckt bei Ubuntu/Debian im Paket libdrm-tests (erst ab focal verfügbar: https://packages.ubuntu.com/focal/libdrm-tests), die Sourcen liegen im libdrm Git Repo: https://cgit.freedesktop.org/mesa/drm/tree/tests/modetest

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • okay habe es anders gemacht, über edid-decode die edid aus

    /sys/class/drm/card0-HDMI-A-1/device/card0-HDMI-A-1 ausgelesen.


    Da sind folgende Modelines definiert:

    VIC 16 1920x1080@60Hz 16:9 HorFreq: 67500 Hz Clock: 148.500 MHz

    VIC 31 1920x1080@50Hz 16:9 HorFreq: 56250 Hz Clock: 148.500 MHz

    VIC 5 1920x1080i@60Hz 16:9 HorFreq: 33750 Hz Clock: 74.250 MHz

    VIC 20 1920x1080i@50Hz 16:9 HorFreq: 28125 Hz Clock: 74.250 MHz

    VIC 32 1920x1080@24Hz 16:9 HorFreq: 27000 Hz Clock: 74.250 MHz

    VIC 33 1920x1080@25Hz 16:9 HorFreq: 28125 Hz Clock: 74.250 MHz

    VIC 34 1920x1080@30Hz 16:9 HorFreq: 33750 Hz Clock: 74.250 MHz

    VIC 4 1280x720@60Hz 16:9 HorFreq: 45000 Hz Clock: 74.250 MHz

    VIC 19 1280x720@50Hz 16:9 HorFreq: 37500 Hz Clock: 74.250 MHz

    VIC 3 720x480@60Hz 16:9 HorFreq: 31469 Hz Clock: 27.000 MHz

    VIC 18 720x576@50Hz 16:9 HorFreq: 31250 Hz Clock: 27.000 MHz

    VIC 7 1440x480i@60Hz 16:9 HorFreq: 15734 Hz Clock: 27.000 MHz

    VIC 22 1440x576i@50Hz 16:9 HorFreq: 15625 Hz Clock: 27.000 MHz

    VIC 93 3840x2160@24Hz 16:9 HorFreq: 54000 Hz Clock: 297.000 MHz

    VIC 94 3840x2160@25Hz 16:9 HorFreq: 56250 Hz Clock: 297.000 MHz

    VIC 95 3840x2160@30Hz 16:9 HorFreq: 67500 Hz Clock: 297.000 MHz

    VIC 98 4096x2160@24Hz 256:135 HorFreq: 54000 Hz Clock: 297.000 MHz

    VIC 99 4096x2160@25Hz 256:135 HorFreq: 56250 Hz Clock: 297.000 MHz

    VIC 100 4096x2160@30Hz 256:135 HorFreq: 67500 Hz Clock: 297.000 MHz

    VIC 97 3840x2160@60Hz 16:9 HorFreq: 135000 Hz Clock: 594.000 MHz

    VIC 96 3840x2160@50Hz 16:9 HorFreq: 112500 Hz Clock: 594.000 MHz

    VIC 102 4096x2160@60Hz 256:135 HorFreq: 135000 Hz Clock: 594.000 MHz

    VIC 101 4096x2160@50Hz 256:135 HorFreq: 112500 Hz Clock: 594.000 MHz


    Also auch 50Hz wäre dabei..

  • ..aus dem git kann ich es dann auch für 18.04 bauen?

    Hab ich noch nicht ausprobiert, mein Testsystem läuft mit focal.


    Die Namen der genutzten Konnektoren kannst du dir auch mittelsgrep -v 'disconnected' /sys/class/drm/card0/*/status | grep -Po '(?<=card0-).*(?=/)' holen, die gewünschte Auflösung und Refresh-Rate (50Hz) kennst du ja sowieso.


    Ich habe mir eine behelfsmäßige User-Session gebastelt, damit man pulseaudio, tmux und irexec in der Session nutzen kann (mit systemctl enable drmlogin@vdr.service aktivieren, nachdem man yavdr-xorg, xlogin@vdr und x@vt7 maskiert hat, dann den Rechner neu starten):


    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi, die Modelines hatte ich schon ausgelesen bekommen, das geht soweit. Habe deine 2 Skripts auch jetzt eingebaut, allerdings mag bei mir das pulseaudio service nicht starten.


    sudo systemctl enable pulseaudio.service

    Failed to enable unit: Unit file pulseaudio.service does not exist.


    locate pulseaudio.service

    /usr/lib/systemd/user/pulseaudio.service

    /var/lib/vdr/.config/systemd/user/default.target.wants/pulseaudio.service


    es existiert aber irgendwo... ist das eventuell der grund dass ich nach jedem reboot das Verzeichnis /run/user/666 anlegen muss, und die Berechtigug für user 666 vergeben muss um audio zu bekommen? in der group ist vdr audio zugewiesen:

    audio:x:29:pulse,vdr


    danke wie immer für deine Hilfe!



    edit: das pulseaudio.service wird wohl eh geladen, daran liegt es also nicht.

  • Jetzt habe ich noch das Problem zwischen softhddrm und KODI umzuschalten - KODI 18 kann wie es aussieht kein Bild anzeigen, solange die ~/.drirc für softhddrm vorhanden ist, weil dann das Kompilieren der Shader nicht klappt.

    Und bei einem svdrpsend plug softhddrm deta scheint das Plugin nicht alle Ressourcen freizugeben, so dass KODI nur dann ein Bild liefern kann, wenn man es startet, nachdem die ~/.drirc gelöscht bzw. verschoben und der VDR beendet wurde.

    Versuche es mal ohne die .drirc. Dafür ändere in video.c noch das setenv auf 3.1. Das ist so irgendwo bei Zeile 1164. Evtl. geht es dann ja ohne die .drirc

    Wegen dem freigeben mit DETA muss ich mal schauen. Ich nutze ja kein Kodi und fahre den VDR nie runter.


    reini-at Wenn im EDID die Auflösung drin ist dann sollte es auch mit 50 Hz funktionieren. Ich drucke doch aus, welche Auflösung das Plugin einstellt. Was sagt es denn da ? Nutzt du den gepatchten Kernel und ist da evtl. der UHD-10Bit patch drin ? Den solltest du erstmal raus lassen. Der verstellt die Modeline und geht auch nur für 60 Hz.



    Hab nun mal versucht das DETA zu reparieren und die benötigte GLES Version bei VAAPI und DRM auf 300 reduziert. Bei mir geht das nun ohne .drirc

Participate now!

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