Anleitung für softhdcuvid mit libplacebo

  • Für Ubuntu 18.04 ist das nicht ganz einfach, softhdcuvid mit libplacebo-Unterstützung als normales Paket auf Launchpad bauen zu lassen - zwar bekommt man das CUDA Toolkit 10 von Nvidia als Debian-Paket (https://docs.nvidia.com/cuda/cuda-inst…inux/index.html), aber da die Pakete von nvidias eigenen Servern verteilt werden statt über ein PPA auf Launchpad, kann man das leider nicht zum Auflösen der Bau-Abhängigkeiten nutzen.

    Und da es von Nvidia keine Quellen für die Debian-Pakete gibt, kann man das auch nicht mal eben in einem PPA bauen lassen (was bei der Größe von 2 GB für die Sourcen sowieso schon kaum möglich ist) - bleibt der Weg zu Fuß (darauf achten, dass man ca. 4 GB auf der Systempartition braucht, wenn man das cuda Paket mit allen empfohlenen Abhängigkeiten installiert - ob man mit einem Subset der Metpakete auskommt, habe ich noch nicht ausprobiert):

    Vor der Installation der neuen nvidia-Pakete sollte man alle Reste vorhandener nvidia-Treiber, Cuda-Pakete und die vorher genutzte Version von softhdcuvid vom System entfernen (falls man sie als Paket installiert hat), also

    Code
    sudo apt remove vdr-plugin-softhdcuvid
    # bzw.
    sudo apt remove vdr-plugin-softhdcuvid-396
    sudo apt remove nvidia-*
    sudo apt autoremove --purge

    Weitere Details zu den Vorarbeiten gibt es in der CUDA-Dokumentation: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions

    Danach kann man sich von https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=debnetwork ein Paket herunterladen, das die nvidia-Paketquellen einbindet, den Schlüssel für die Paketquelle importieren und cuda (der neue nvidia-Treiber nvidia-driver-410 wird automatisch als Abhängigkeit gezogen) installieren:

    Code
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86\_64/cuda-repo-ubuntu1804\_10.0.130-1\_amd64.deb
    sudo dpkg -i cuda-repo-ubuntu1804\_10.0.130-1\_amd64.deb
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86\_64/7fa2af80.pub
    sudo apt update
    sudo apt install --install-recommends cuda

    Eine aktuelle Version der libplacebo und der erforderlichen Abhängigkeiten gibt es in ppa:seahawk1986-hotmail/ffmpeg-deinterlace:

    Code
    sudo add-apt-repository ppa:seahawk1986-hotmail/ffmpeg-deinterlace
    sudo apt full-upgrade

    Bauen von vdr-plugin-softhdcuvid mit libplacebo-Unterstützung

    Zum Bauen von softdcuvid mit libplacebo-Unterstützung werden die folgenden Pakete benötigt :

    Code
    sudo apt install gettext pkg-config libva-dev libx11-xcb-dev libxcb-dpms0-dev libxcb-xv0-dev libxcb-glx0-dev libxcb-randr0-dev libxcb-screensaver0-dev libxcb-image0-dev libxcb-util0-dev  libxcb-util0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libavcodec-dev libavformat-dev libswresample-dev libswscale-dev libasound2-dev libgl1-mesa-dev libglu1-mesa-dev libvdpau-dev libxcb-ewmh-dev libswscale-dev libglvnd-dev cuda libnvidia-decode-410 libglew-dev freeglut3-dev libglm-dev libfreetype6-dev libplacebo-dev vdr-dev build-essential git

    softhdcuvid bauen

    Zunächst wird das Git-Repository heruntergeladen (das muss nur einmalig passieren, später lässt sich der Klon bei Bedarf aktualisieren):

    git clone https://github.com/jojo61/vdr-plugin-softhdcuvid.git

    Danach betreten wird das Projektverzeichnis mit cd vdr-plugin-softhcuvid.Die letzten Änderungen kann man sich jeweils mit git pull holen.

    Im Makefile muss jetzt noch die Zeile 22 (https://github.com/jojo61/vdr-plugin-softhdcuvid/blob/master/Makefile#L22) in LIBPLACEBO=1 geändert werden, damit das Plugin mit Unterstützung für diese Bibliothek gebaut wird.

    Jetzt kann man das Plugin bauen und ins System installieren lassen: make && sudo make install

    Damit der VDR das Plugin lädt, muss noch eine /etc/vdr/conf.avail/softhdcuvid.conf mit folgendem Inhalt erstellt werden (falls sie noch nicht existiert):

    Code
    [softhdcuvid]
    -D
    -f

    Mit dem Befehl sudo vdrctl enable softhdcuvid lässt sich das Plugin dann aktivieren (dabei wird die Konfigurationsdatei nach /etc/vdr/conf.d/ verlinkt). Andere Ausgabeplugins (wie softhddevice) sollten deaktiviert werden.

    Zum Schluss den Rechner neu starten,damit der neue nvidia-Treiber geladen und der VDR mit dem neuen Plugin gestartet wird.

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Edited once, last by mini73 (November 19, 2018 at 1:54 PM).

  • Super Anleitung!

    Achtung: skindesigner ist nicht kompatible!

    Gruß

    Murry

    Mein vdr

    SilverStone Milo ML03 schwarz, ASRock H67M-GE/HT, Gigabyte GT1030 Silent, Intel Pentium G630T, DD Cine S2 V6.2, yavdr ansible, Onkyo 508, LG55LA6608, Unicable

  • Achtung: skindesigner ist nicht kompatible!

    jojo61 hatte einen Patch gepostet, der das Problem zumindest verbessern soll: softhddevice with hevc and UHD (in softhddevice with hevc and UHD wird das grundlegenden Problem kurz angerissen) - ich baue das Plugin mal mit dem Patch in dem PPA ppa:seahawk1986-hotmail/ffmpeg-deinterlace (da ich nicht weiß, ob das auf andere Frontends Auswirkungen hat).

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wie es aussieht gibt es auch mit Patch noch OSD-Reste und Crashes...

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ja ich hatte den Patch auch nur kurz getestet und nutze selber kein skindesigner. Es wäre mir lieb wenn sich da jemnand anderes drum kümmern könnte. Der skindesigner ist ja auch nicht wirklich UHD fähig und müsste da auch noch angepasst werden.

    Ich werde mal versuchen ob ich da noch etwas am softhdcuvid verbessern kann, aber das Problem ist ursächlich beim skindesigner So wie ich das gesehen habe sind die verschiedenen Threads da nicht syncronisiert und die Befehle kommen in unterschiedlichen Reihenfolgen. Das kann man ganz gut sehen wenn man das Menü aufruft. Manchmal klappt es das Video ins Fenster zu verkleinern und manchmal klappt es nicht. Sobald man dann die Menuselektion ändert kommt es dann richtig. Und irgendwo ist noch ein Timeout drin, wenn das Menü nicht reagiert dann kommt nach so 5 sekunden doch noch die richtige Reaktion.

    Das ist bisher nicht aufgefallen und wenn man debuggt ob das OSD angezeigt wird dann sieht man das mit dem skindesigner das OSD fast immer akiv ist. Nur sieht man das nicht weil es auf transparent oder leer initialisiert ist. Das klappt aber mit libplacebo nicht und ist auch konzeptionell falsch.

  • Der skindesigner ist ja auch nicht wirklich UHD fähig und müsste da auch noch angepasst werden.

    Dazu gabe es ja bereits in der Vergangenheit einige Threads hier im Forum.

    Mir ist jetzt noch eingefallen, dass wohl die fehlenden Hintergrunggrafiken im skindesigner-Plugin vermutlich aber am softhddevice-Plugin liegen sollen und nicht nur am skindesigner-Plugin. Dazu wurde von johns bereits mal was geschrieben, was in den Sourcen vom softhddevice-Plugin zu ändern sei, damit es da besser funktioniert! Ich weiß nicht, ob das bereits in den Sourcen vom softhddevice-Plugin übernommen wurde?

    softhddevice <> 4K Auflösung skindesigner (Post #5)

    meine aktuelle Hard- und Software

    Heimkino: . . . . . . . AVR Denon AVR-X4800H . . . MiniLED-UHD-TV SONY BRAVIA XR-75X95L. . . Universal-FB: Sofabaton U2
    VDR-Hardware: . . Grafik MSI GT1030, Quad-DVB-C/T2 TBS-6205, Quad-DVB-S2/S2X TBS-6904SE

    VDR-Software: . . . yaVDR-ansible-noble - Kernel 6.08.0 - VDR-2.7.x - nvidia-550
    VDR-Client 1+ Media-Player: . . . Odroid N2 . 4GB mit VDR*ELEC Kodi-21.x + VDR-2.7.x_@Zabrimus
    VDR-Client 2+ Media-Player: . . . Dune HD Homatics Box R4K Plus . 4GB mit Kodi-21.x + VDR-2.7.x_@Zabrimus

  • Ja was da steht habe ich gemacht. Sonst würde das LCARS auch nicht laufen. Skindesigner mit UHD läuft ja auch wenn man das OSD fest auf 1920x1080.

    einstellt. Dann wird es halt auf UHD hochskaliert. Ich habe gerade nochmal einen fix für den skindesigner im softhdcuvid eingecheckt. Vielleicht hilft das ja.

    Das Problem ist das der softhdcuvid mit libplacebo und vulkan nicht mehr auf den vsync wartet (d.h. schläft). Das kann vulkan nicht so richtig. Und dann schläft er an einer anderen Stelle und da kommen die Befehle vom skindesigner nicht durch. Jetzt schlafe ich einfach mal 1ms wo sonst der swap schlafen würde. Das scheint zu helfen.

  • Hallo,

    ich wollte die aktuelle Version ohne libplacebo installieren.

    Dann bekommen ich aber immer diese Fehlermeldung:

    Code
    Apr 27 19:53:43 ubuntu18 vdr: [7348] ERROR: /usr/lib/vdr/plugins/libvdr-softhdcuvid.so.2.4.0: undefined symbol: avcodec_find_decoder_by_name
    Apr 27 19:53:43 ubuntu18 vdr[7348]: vdr: /usr/lib/vdr/plugins/libvdr-softhdcuvid.so.2.4.0: undefined symbol: avcodec_find_decoder_by_name

    Kann mir jemand sagen was sie bedeutet? Eine Fehlermeldung beim bauen gab es nicht.

    Gruß

    Murry

    Mein vdr

    SilverStone Milo ML03 schwarz, ASRock H67M-GE/HT, Gigabyte GT1030 Silent, Intel Pentium G630T, DD Cine S2 V6.2, yavdr ansible, Onkyo 508, LG55LA6608, Unicable

  • Das kann ich hier gerade nicht nachvollziehen - hast du make clean laufen lassen, um Rückstände von früheren Kompilierungsversuchen zu entfernen? Was sagt apt policy libavcodec-dev?

    Wie sieht die Ausgabe von make nach einem make clean aus?

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • apt policy libavcodec-dev


    Ich habe das Verzeichnis gelöscht und das git neu geholt. -> Keine Änderung, siehe make.txt


    Baust du auch ohne libplacebo?

    Files

    Mein vdr

    SilverStone Milo ML03 schwarz, ASRock H67M-GE/HT, Gigabyte GT1030 Silent, Intel Pentium G630T, DD Cine S2 V6.2, yavdr ansible, Onkyo 508, LG55LA6608, Unicable

  • Code
    Package libavfilter was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libavfilter.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libavfilter' found

    Da fehlt auf jeden Fall das Paket libavfilter-dev

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Super, vielen Dank. Läuft wieder.

    Mein vdr

    SilverStone Milo ML03 schwarz, ASRock H67M-GE/HT, Gigabyte GT1030 Silent, Intel Pentium G630T, DD Cine S2 V6.2, yavdr ansible, Onkyo 508, LG55LA6608, Unicable

  • Hallo seahawk1986,

    vielen Dank für deine Anleitung. Wenn ich diese bei Ubuntu 20 (focal) anwende, bekomme ich folgende Meldung:

    Code
    libnvidia-decode-410 : Hängt ab von: libnvidia-compute-410 (= 410.129-0ubuntu1) soll aber nicht installiert werden
                            Kollidiert mit: libnvidia-decode
     libnvidia-decode-440 : Kollidiert mit: libnvidia-decode

    Wenn ich dann libnvidia-compute-410 und cuda-10-2 hinzufüge (weil dann noch die Meldung "cuda : Hängt ab von: cuda-10-2 (>= 10.2.89) soll aber nicht installiert werden" kommt), bekomme ich dann leider folgende Meldung:

    Wie kann man dieses Problem lösen?

    EDIT: Ich habe die nvidia-Version auf 440 angepasst. Dann komme ich einen Schritt weiter.

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

    Im Aufbau: VDR-UHD (+graphtftng) mit nVidia GT1030 unter Ubuntu 24.04

    Edited once, last by r371769 (May 3, 2020 at 7:52 PM).

  • Unter Ubuntu 20.04 kannst du das vdr-plugin-softhdcuvid aus dem PPA nehmen, der Umweg mit dem selber bauen für bionic war nur notwendig, weil die nvidia-Pakete nicht in den regulären Ubuntu-Paketquellen waren und zu sperrig sind, um sie in einem PPA abzulegen.

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • jojo61: Ich bekomme beim Make unter Ubuntu 20 folgenden Fehler (Quellen sind aktuell):

    Code
    video.c:5297:17: error: 'const struct pl_gpu' has no member named 'import_caps'
     5297 |     if (!(p->gpu->import_caps.tex & PL_HANDLE_DMA_BUF)) {
          |                 ^~
    video.c:5297:37: error: 'PL_HANDLE_DMA_BUF' undeclared (first use in this function)
     5297 |     if (!(p->gpu->import_caps.tex & PL_HANDLE_DMA_BUF)) {
          |                                     ^~~~~~~~~~~~~~~~~
    make: *** [<builtin>: video.o] Error 1

    Was mache ich falsch?

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

    Im Aufbau: VDR-UHD (+graphtftng) mit nVidia GT1030 unter Ubuntu 24.04

  • Unter Ubuntu 20.04 kannst du das vdr-plugin-softhdcuvid aus dem PPA nehmen, der Umweg mit dem selber bauen für bionic war nur notwendig, weil die nvidia-Pakete nicht in den regulären Ubuntu-Paketquellen waren und zu sperrig sind, um sie in einem PPA abzulegen.

    ok, das wäre sehr hilfreich :). Sind in dem aktuellen Paket die skindesiger-Patches drin?

    Der Hintergrund ist, dass ich ein Darstellungsproblem mit softhdcuvid habe, wenn das Kanal-Menü ausgeblendet wird. Dann bleibt der untere Rand im Bild stehen.

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

    Im Aufbau: VDR-UHD (+graphtftng) mit nVidia GT1030 unter Ubuntu 24.04

  • Sind in dem aktuellen Paket die skindesiger-Patches drin?

    Welche Patches meinst du genau?

    Der Patch in den Sourcen von softhdcuvid (https://github.com/jojo61/vdr-plu…igner_patch.txt) wurde soweit ich das sehen kann mit diesem Commit ins vdr-plugin-skindesigner integriert: https://projects.vdr-developer.org/git/vdr-plugin…deb67f4a79ee29e

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Was mache ich falsch?

    Vermutlich hast du nicht alle nötigen Pakete installiert, die zum Bauen benötigt werden. Das ist ja noch mal mehr geworden - hier mal die Build-Depends aus der debian/control von softhdcuvid unter focal:

    nv-codec-headers-dev und eine aktuelle libplacebo stecken in ppa:yavdr/experimental-main

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Participate now!

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