softhdcuvid jetzt mit VAAPI und HDR support

  • vdr als root ist irgendwie uncool.


    Du hast sicherlich auch das hier gefunden:

    https://stackoverflow.com/ques…-requires-root-privileges


    Unten ist was zu lesen von fd schließen und wieder öffnen. Ob das hier hilft, root-Privilegien zu vermeiden?

  • Ja diesen Artikel habe ich gelesen. Damit habe ich die Lösung ja erst gefunden.

    Da steht das man als nicht root zum master wird wenn man das device öffnet und es wird spekuliert wie man wieder zum master werden kann wenn man den master als nicht root droppen könnte. Was nicht geht ist den master zu verlieren wenn man das device schliesst. Das habe ich ausprobiert. Man verliert den master nur dann wenn man sich beendet. Deswegen musste ich die Funktion drmDropMaster einbauen und die braucht leider root. Aus meiner Sicht ist das unsinn aber das ist halt mal so im Kernel. Ich bin auch nicht glücklich mit root und werde mal schauen wie X das macht. Der X server läuft ja auch ohne root und kann den master abgeben. Evtl gibt es ja da noch ein Lösung.


    Noch ein Nachtrag:

    Wer keine umschaltung zu Kodi braucht (kein DETA/ATTA nutzt), der braucht den vdr auch nicht als root laufen zu lassen. Und root wird auch nur bei drm gebraucht.

  • Ich vermute das das mpv plugin nur mit X läuft. Falls es doch mit drm läuft dann gibt es dort evtl. das gleiche Problem mit dem drmMaster der nicht gedroppt wird.

  • seahawk1986 So ich habe gerade einen Fix für das DETA/ATTA Problem mit drm eingecheckt. Wäre prima wenn du das mal testen könntest.

    Leider muss der vdr nun als root laufen weil die Funktion drmDropMaster das braucht.

    Danke, ich probiere das aus, wenn ich wieder an mein Testsystem komme. Pakete dafür habe ich schon gebaut.

    Deswegen musste ich die Funktion drmDropMaster einbauen und die braucht leider root. Aus meiner Sicht ist das unsinn aber das ist halt mal so im Kernel. Ich bin auch nicht glücklich mit root und werde mal schauen wie X das macht. Der X server läuft ja auch ohne root und kann den master abgeben. Evtl gibt es ja da noch ein Lösung.

    Falls alle Stricke reißen: Kann man dem Plugin den drmMaster-Status von außen wegnehmen?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo Seahawk,


    Da es nur eine Refreshrate für die Auflösung gibt würde ich mal video=DP-1:2560x1440e bzw. video=DP-1:e probieren


    habe mich durch viele Versuche gekämpft, alle ohne Erfolg. Beim Angeben per "e" (e=enable) hagelte es Kernel Errors mit dem Ergebnis, dass gar keine Ausgabe ab Laden von Grub mehr möglich war. Es ging stark in diese Richtung: https://bugzilla.freedesktop.org/show_bug.cgi?id=103347 und https://bugzilla.freedesktop.org/show_bug.cgi?id=106291

    Also, für Displayport scheint das Setzen ohne angeschlossenes Device wohl auch für die Treiberschreiber tricky zu sein.


    Daher habe ich die Boot-Parameter gelassen, wie sie waren (video=DP-1:2560x1440@59.95D) und einen Workaround mit einer UDEV-Rule und einem Script gebastelt, der jetzt funktioniert. War im zweiten von mir genannten Link angerissen worden. Das mit "Suspending AIGLX clients for VT switch" ist immer der letzte "Fehler" im Log bei mir, wenn der Monitor beim Booten nicht an ist.


    Code: /etc/udev/rules.d/95-monitor-hotplug.rules
    1. KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/chriss/.Xauthority", RUN+="/video/commands/startkde.sh"


    Vielen Dank für deine Hilfestellung!!


    Viele Grüße,

    Chriss

  • seahawk1986 So ich habe gerade einen Fix für das DETA/ATTA Problem mit drm eingecheckt. Wäre prima wenn du das mal testen könntest.

    Leider muss der vdr nun als root laufen weil die Funktion drmDropMaster das braucht.

    Ich bin jetzt endlich mal dazu gekommen das auszuprobieren und kann einen Teilerfolg vermelden:

    DETA als root klappt (danach sehe ich das UEFI-Boot-Logo von meinem Laptop), dann kann ich KODI starten und nach dem Beenden von KODI wieder ein ATTA machen.


    Was leider nicht mehr nach dem erneuten Attachen funktioniert ist das OSD - sobald ich das Aufrufe oder den Kanal wechseln will, springt er zwischen den letzen beiden Frames hin- und her und hängt sich weg:

    Gäbe es denn eine Möglichkeit dem VDR von außen den drmMaster Status wegzunehmen? Dann könnte man den VDR vielleicht doch als normalen Nutzer innerhalb einer Systemd Session laufen lassen....

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Was leider nicht mehr nach dem erneuten Attachen funktioniert ist das OSD - sobald ich das Aufrufe oder den Kanal wechseln will, springt er zwischen den letzen beiden Frames hin- und her und hängt sich weg:


    Gäbe es denn eine Möglichkeit dem VDR von außen den drmMaster Status wegzunehmen? Dann könnte man den VDR vielleicht doch als normalen Nutzer innerhalb einer Systemd Session laufen lassen....

    seahawk1986 Danke für den Test. Ich schau mal nach dem OSD Problem nach den ATTA.


    Leider gibt es keine möglichkeit von aussen den drmMaster Status zu ändern. Ich hab mal nachgeschaut wie der X server das macht. Da wird ein Hilfsprogramm gestartet (mit root rechten) und dem wird dann der Filepointer des drm devices übergeben und der macht dann das DropMaster. Gefällt mich nicht.

    Es gibt wohl auch X Server die den Filepointer in einer Environmentvariablen ablegen und dann kann man diesen FP nutzen ohne das drm Device erneut zu öffnen und damit wird man kein Master. Aber auch diese Lösung habe ich noch nirgendwo in Betrieb gesehen. Im Moment würde ich gerne mal abwarten was Kodi 20 da macht. Die wollen da ja auch auf drm ausweichen. Wenn aber unbedingt sofort eine Lösung gebraucht wird das würde ich die Lösung mit dem Hilfsprogramm implementieren. Wie sieht du das ?

  • Im Moment würde ich gerne mal abwarten was Kodi 20 da macht. Die wollen da ja auch auf drm ausweichen.

    KODI 18 kann ja prinzipiell schon über drm ausgeben (auch wenn man da u.a. noch keine Möglichkeit hat den Bildschirm zu wählen) - bis KODI 20 wäre das ja noch mindestens ein Jahr, nachdem im November eine Vorabversion von KODI 19 angekündigt wurde, oder?

    Wenn aber unbedingt sofort eine Lösung gebraucht wird

    Nachdem die restlichen Komponenten für die 10-Bit Wiedergabe mit 50 Hz noch nicht so weit zu sein scheinen, muss das eigentlich nicht sofort passieren - mir ist eine langfristig gut nutzbare Lösung lieber als ein schneller Workaround.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • KODI 18 kann ja prinzipiell schon über drm ausgeben (auch wenn man da u.a. noch keine Möglichkeit hat den Bildschirm zu wählen) - bis KODI 20 wäre das ja noch mindestens ein Jahr, nachdem im November eine Vorabversion von KODI 19 angekündigt wurde, oder?

    Nachdem die restlichen Komponenten für die 10-Bit Wiedergabe mit 50 Hz noch nicht so weit zu sein scheinen, muss das eigentlich nicht sofort passieren - mir ist eine langfristig gut nutzbare Lösung lieber als ein schneller Workaround.

    Ich hatte in einem Chat gelesen das Kodi 20 erst HDR und drm bringen soll. Hatte aber nicht im Blick wann das soweit sein soll. Aber die Linux Treiber sind ja auch alle noch nicht so extrem weit. Und ffmpeg ist auch noch nicht soweit mit den v4lm2m codecs auf die Kodi setzen will. Also keine Eile.

  • Ich habe noch ein paar kleiner Fixes gemacht und nun sollte auch drm einigermaßen sauber sein. Auch shady sollte nun funktionieren.


    Allerdings scheint der vaapi dekoder bei hevc in bestimmten Situationen (fehlerhafte Frames) Speicher zu fressen. Ob das am Dekoder oder an FFMPEG liegt konnte ich nicht rausfinden. Zumindest scheint auch mit mpv der Speicher weniger zu werden. Am besten sieht man das mit travelxp. Nur leider kann ich da mit mpv nicht testen weil der verschlüsselt ist.


    CKone du wolltest doch mal eine travelxp Aufnahme mit dem Problem extrahieren. Evtl. kann man ja damit dann den Fehler eingrenzen. Wenn ich mit meinem Plugin behaupte es ist ffmpeg dann glaubt das niemand, aber wenn es mit mpv reproduzierbar ist dann ist das was anderes :-)