softhdcuvid bauen für Maintainer (nun mit ffnvcodec)

  • Hallo


    nachdem sich hier einige Paketmaintainer beschwert haben das man das ganze Cuda Package braucht um softhdcuvid zu bauen, habe ich das mal zusammengefasst. Es sind nur wenige Dateien nötig. Hier eine Liste der Dateien die man für Cuda10 braucht und in /usr/local/cuda ablegen sollte


    Wer sich nicht das ganze Cuda Paket herunterladen will dem kann ich diese Dateien auch gerne zukommen lassen. Bei Cuda tut sich ja nicht so viel und mit cuda10 geht es ja auch sehr gut.

    Bitte PM an mich. Ich weiss nicht ob ich das mit aufs GIT legen kann weil NVIDIA ja da das Copyright hat.


    Nachtrag:

    Hat sich nun erledigt siehe unten,


    jojo61


    PS: Ich empfehle immer mit libplacebo zu bauen. Nur dann sind die Farben auch bei HDR sauber und richtig konvertiert.

  • Kommt bei vdr4arch jetzt definitiv mit rein. Allerdings geht der Auto-Build aktuell gar nicht. Ich überlege aktuell das komplett auf TravisCI umzustellen. Dann muss da auch kein selbst gemieteter vServer mehr für herhalten.

  • "-lcuda" und "-lnvcuvid" sollten nicht mehr nötig sein und damit den Nvidia-Treiber eigentlich optional machen (vor allem sinnvoll für vaapi-Nutzer).


    Schau dir das "ffnvcodec"-Paket (vor allem Header) mal genauer an. Dort ist dynamisches Laden der Bibliotheken umgesetzt.

  • Bei vaapi wird auch jetzt schon kein cuda und nvcuvid gelinkt. D.h. der Nvidia Treiber wird auf vaapi Installationen nicht gebraucht.


    Ob man cuda und nvcuvid bei NVIDIA noch ablinken muss werde ich mal prüfen. Wäre ja schön den ffnvcodec das übernehmen würde.

  • Soll heißen man muss dein Plugin mit unterschiedlichen Parametern kompilieren je nach Ausgabeform?


    Wenn ja, dann wäre das irgendwie "unpraktisch" für Distributoren, denn man muss sich dann ja auf eine Konfiguration einigen. Zumindest ich werde keine verschiedenen Varianten kompilieren.


    "ffnvcodec" könnte hier schonmal helfen das man generell keinen Nvidia-Treiber braucht. Wenn du das noch für vaapi hinbekommst, dann wäre ein und dasselbe Plugin vielleicht irgendwie für alle Ausgabe-Formate nutzbar.

  • Im Prinzip gibt es 3 Plugins aus der gleichen Quelle. Die müssen 3 mal compiliert werden und dem Makefile können die Parameter dazu übergeben werden.

    D.h. du kannst folgendes in ein Script bauen:

    make clean; make CUVID=1 PLACEBO=1; make clean; make VAAPI=1 PLACEBO=1; make clean; make DRM=1

    Dann hast du 3 plugins mit unterschiedlichen Namen die in die Distro könnten.

    Es gibt die Plugins softhdcuvid, softhdvaapi und sofhddrm. Genaueres dazu ist im Readme im GIT zu finden. Was auch immer du in die Distribution übernehmen willst ist deine Sache.

  • Was ist wenn ich da 3 mal durch "make clean" durch bin. Kann ich dann mit "make install" alle 3 installieren?


    Könntest du das im Makefile so hinbasteln das ein "make all" einfach alles baut?


    Ich glaube ich würde da dann einzelne Pakete pro Plugin für bauen. Also je ein Paket für "softhdcuvid", "softhdvaapi" und "softhddrm".


    Für Arch gibt es genau eine "build"-Routine. Hier muss ich alles bauen.


    Zum Installieren der einzelnen Komponenten gibt es dann eigene Routinen. Wäre natürlich schön wenn man hier jeweils mit "make install" installieren könnte. Andernfalls müsste ich die Komponenten manuell kopieren.


    Edit: Wenn ich das Makefile richtig verstehe, dann geht es so für die einzelnen Komponenten:


    make CUVID=1 install

    make VAAPI=1 install

    make DRM=1 install


    Und du hast ein "CUVID=1" direkt im Makefile. Man müsste das also entweder für alle Befehle hart 0 setzen oder einmal zu Beginn diese Zeile aus dem Makefile patchen...


    Weiterhin scheint einen nichts daran zu hindern "make CUVID=1 VAAPI=1 DRM=1" zu machen was dann wohl ein "undefiniertes Verhalten" provoziert. Hier eventuell noch nachbessern, dass falsche Parameter einen Error auslösen?

  • Ich werde den default CUVID=1 noch rausnehmen. Dann sollte es so gehen wie du schon festgestellt hast. Ausserdem nehme ich dann PLACEBO als default mit rein.

    Was ich aber nicht machen kann ist das du auf den make clean dazwischen verzichten kannst. Die Objektdateien sind halt gleich und denen sieht man nicht an mit welchen Paramtern sie compiliert wurden. Deswegen vor dem make ein make clean bitte.

    Ein make all wäre nur für die Distro Maintainer sinnvoll und ich denke mit den parametrierten einzelnen makes sollte das auch gehen.


    Das abfangen von invaliden Paramtern kann ich noch machen.

  • Hi,

    Sind die mit VDR 2.2.0 auch noch nutzbar?

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • "make clean" geht nicht mehr ohne mindestens ein "Plugin" anzugeben.


    "make clean" geht also nicht. "make CUVID=1 clean" geht...


    Weiterer Fehler: Du gibst an, dass "softhddrm" nicht mit "libplacebo" geht. Gelinkt wird aber doch dagegen was eine Abhängigkeit erzeugt!


    Weiterhin wäre wohl nach wie vor möglich mehr als ein Plugin anzugeben (was ich nicht ganz abwegig finde das zu probieren wenn man vorhat mehr wie ein Plugin zu bauen).

  • Ist im AUR jetzt verfügbar. Ob ich die Abhängigkeiten richtig habe, habe ich keine Ahnung. Ebensowenig ob das tatsächlich funktionert, denn testen werde ich nicht.


    "softhddrm" ist halt jetzt von libplacebo abhängig solange bis das gefixt ist.

  • Fehler gefunden. Abhängigkeiten sind, wenn auch wahrscheinlich nicht ganz 100%ig sauber, jetzt zumindest deutlich aufgeräumter.


    Sobald wir Travis CI laufen haben wird das jetzt automatisch mit kompiliert.


    Testen werde ich aber selber nicht. Bei mir ist VDR das alleinige Frontend und das bleibt auch so.

Jetzt mitmachen!

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