softhdcuvid jetzt mit VAAPI und HDR support

  • Gibt es in dieser Zeile im Makefile nicht ein = zu viel?

    Heut ist nicht mein Tag... gefixt.


    So die Entwicklung von VAAPi und drm ist erstmal abgeschlossen und es wird im Moment nur noch Bugfixing geben.

    Die Version für den Raspi habe ich nicht vergessen, aber da warte ich noch auf ein ffmpeg das v4l2m2m auch in Hardware dekodiert. Vorher ist das sinnlos. Und das wird wohl erst mit Kodi 20 etwas werden. Also Geduld ist da angesagt, Das gleiche gilt wohl auch für einen Kernel mit ordentlicher HDR unterstützung. In 5.5 hat sich da wenig getan und der Patch für den NUC ist da auch nicht reingewandert :-(


    Ich werde mich nun mal mit den Gammakurven beschäftigen. Wenn man da genauer hinschaut dann ist das ganze HDR geraffel (neben einer höheren Farbtiefe) immer nur angepasste Gammakurven. Damit wird HDR10, HDR10+ und Dolby Vision gemacht. Dafür braucht es eigentlich keinen Fernseher mit diesen Anpassungen. Das geht auch mit angepasster Gammakurve vor dem Fernseher :-) Zudem sind die HDR Gammkurven im Fernseher nicht unbedingt immer die besten für den jeweiligen Film. Das hängt dann davon ab wie er gemastert ist. Da ist man dann ganz schnell in einem großen durcheinander :-)


    Was will ich machen ? Ich will erstmal Gammakurven generell unterstützen. Dann möchte ich die Gammakurve in abhängigkeit von dem Umgebungslicht anpassen (ok dazu braucht es Hardware am VDR und das war gerade der letzte Schrei auf der CES :-) Dann möchte ich HLG Gammakurven unterstützen die im Fernseher auf eine BT 1886 Gammakurve trifft.Damit sollte dann HLG an einem "normalen" Fernseher funktionieren (das mach die libplacebo jetzt schon).


    Das ganze wird aber noch etwas dauern.


    mfg

    jojo61

  • Ich glaube, ich muß meinen Bastel-VDR mal wieder aktualisieren! Einfach nur krass! Respekt und vielen Dank! :wow

  • jojo61 : Ich nutze hier einen Lattepanda Alpha core m3 (Intel GPU) mit Deinem DRM-Plugin. Das funktioniert soweit einwandfrei, also nochmals herzlichen Dank dafür. Ich habe noch ein kleines Problem. Mein Lattepanda Alpha hat einen HDMI-Ausgang bis 4K 30 Hz (HDMI-A-1) und einen USB-C-HDMI-Ausgang (DP-1) bis 4k 60 Hz. Leider kann ich nur den ersten HDMI-Ausgang auf dauernd an zwingen (Kernel-Option und EDID), nicht aber den USB-C-HDMI-Ausgang (DP-1), dann crasht der Intel-Grafiktreiber. Meine Idee war daher, Dein Plugin mit -s -D zu starten, wenn der TV aus ist und mit einem Skript zu überwachen, wann der TV eingeschaltet wird und dann per svdrpsend RESU und ATTA auszuführen. Leider stürtzt das Plugin aber mit einem Segfault ab, wenn ich es mit -s -D bei AUSGESCHALTETEM TV starte. Gibt es eine Möglichkeit, auf den Connector (-C) unter diesen Umständen zu verzichten und den nachträglich (sobald der TV eingeschaltet wird) zu verbinden? Oder könnte man im laufenden Betrieb den Connector per svdrpsend-Kommanda wechseln? Ich kann natürlich beim Fernsehen den TV immer zuerst einschalten, damit das Plugin nicht crashed, bei Timeraufnahmen ist das aber doof...

    LG

    beta

  • jojo61

    Ich habe hier auf meinem NUC mit vaapidevice noch ein paar Kleinigkeiten.

    Beim Springen in Aufnahmen, nur rückwärts, aktualisiert sich das Bild später als der Ton und dann dauert es ein weilchen, wenn das Bild dann auch da ist, bis sich Bild und Ton synchronisieren. Beim Vorwärtsspringen gibt es keine Probleme. Das betrifft das Spingen mit grün/gelb (60s) und 1/3 (10s).

    Im Log ist dazu nix zu sehen.


    Weiter habe ich auf Sky öfter mal kurze Freezer (ist mir heute wieder bei Bundesliga aufgefallen).

    Im Log habe ich dann solche Meldungen dazu gesehen

    Code
    1. Feb 8 16:31:18 VDR vdr: [3095] [softhddev] vom VDR kommt Clear:
    2. Feb 8 16:31:18 VDR vdr: video: audio/video difference too big
    3. Feb 8 16:31:18 VDR vdr: [3095] [softhddev] vom VDR kommt Clear:
    4. Feb 8 16:31:20 VDR vdr: message repeated 4 times: [ [3095] [softhddev] vom VDR kommt Clear:]
    5. Feb 8 16:32:21 VDR vdr: [3095] [softhddev] vom VDR kommt Clear:
    6. Feb 8 16:32:21 VDR vdr: [3095] ERROR: 7 TS packet(s) not accepted in Transfer Mode

    Zeichne ich dasselbe gleichzeitgig auf meinem Server ohne Ausgabedevice auf, gibt diese Fehler nicht und die Aufnahme ist in Ordnung.


    Weiter habe ich hier eine Aufnahme von Sky 1 HD (scheinbar mit Fehlerchen) wo bei Wiedergabe das Bild komplett stehen. Sonst sind bei Empfangs-Entschlüsselungproblemen einfach nur Pixelfehler und Sprünge in der Wiedergabe. Bei dieser Aufnahme rührt sich nix mehr, auch im Log nicht. Letzter Eintrag ist

    Code
    1. Feb 8 17:58:37 VDR vdr: [933] [softhddev] vom VDR kommt Clear:
    2. Feb 8 17:58:39 VDR vdr: [933] [softhddev] vom VDR kommt Clear:
    3. Feb 8 17:58:45 VDR vdr: [4013] ERROR: frame larger than buffer (10236600 > 1048476)
    4. Feb 8 17:59:14 VDR vdr: [4013] ERROR: frame larger than buffer (8062568 > 1048476)

    Erst bei Sprung (10s) Vorwärts geht es ganz normal weiter.

  • Beim Springen in Aufnahmen, nur rückwärts, aktualisiert sich das Bild später als der Ton und dann dauert es ein weilchen, wenn das Bild dann auch da ist, bis sich Bild und Ton synchronisieren. Beim Vorwärtsspringen gibt es keine Probleme. Das betrifft das Spingen mit grün/gelb (60s) und 1/3 (10s).

    Im Log ist dazu nix zu sehen.

    kann ich so unterschreiben, ist bei mir in allen Versionen nicht zufriedenstellend. - Werbung "mal eben" von Hand schneiden ist eine Tortur.


    Was ich auch hab in der Version ist das beim öffnen der (skindesigner/shady) Menüs channellogos manchmal nur als eine schwarze Box angezeigt werden. Erneutes öffnen des Menus löst das Problem allerdings. In jedem Fall in der DRM Version ist das so.


    Mehr Probleme kann ich aber allerdings wirklich nicht berichten.

    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
    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

  • Weiter habe ich hier eine Aufnahme von Sky 1 HD (scheinbar mit Fehlerchen) wo bei Wiedergabe das Bild komplett stehen. Sonst sind bei Empfangs-Entschlüsselungproblemen einfach nur Pixelfehler und Sprünge in der Wiedergabe. Bei dieser Aufnahme rührt sich nix mehr, auch im Log nicht. Letzter Eintrag ist

    Code
    1. Feb 8 17:58:37 VDR vdr: [933] [softhddev] vom VDR kommt Clear:
    2. Feb 8 17:58:39 VDR vdr: [933] [softhddev] vom VDR kommt Clear:
    3. Feb 8 17:58:45 VDR vdr: [4013] ERROR: frame larger than buffer (10236600 > 1048476)
    4. Feb 8 17:59:14 VDR vdr: [4013] ERROR: frame larger than buffer (8062568 > 1048476)

    Erst bei Sprung (10s) Vorwärts geht es ganz normal weiter.

    Der default Puffer am VDR ist auf 1 MB eingestellt. Ich hatte diesen Fehler auch mal und wollte die Buffer auf 2 MB vergrössern, aber dann ging gar nix mehr. Bei dir sind es Frames von 10 MB und 8 MB das wird nie funktionieren. Da ist die Aufnahme einfach kaputt. Evtl. kann ffmpeg das beim umkodieren reparieren aber am Plugin kann ich da nix machen.

    Noch etwas; Wie streamst du zum Client ? Streamdev oder minisatip ?


    Das mit den Rückwärtssprüngen schaue ich mir mal an. Da kann man evtl. noch etwas verbessern :-)

  • Ja. Die Aufnahme ist defekt, das weiß ich schon, aber das das Bild einfach stehen bleibt, kannte ich bisher nicht. Das Log zeigt solange auch nichts an. Früher beim normal softhddevice mit einer GT630 gabs halt bei defekten Aufnahmen (Gewitter oder so) eine Menge Fehlermeldungen und dann halt Sprünge und Pixel beim Abspielen. Daher war ich etwas verwundert.


    Client ist bei mit mittels SATIP angebunden.

  • BT liefere ich bei Gelegenheit nach. Es funktioniert, wenn ich die Parameter umdrehe, als der Aufruf so aussieht:

    -P'softhddrm -D -s -C DP-1 -g 1920x1080 -r 50 -a hw:0,7'


    Ich kann dann mit einem Skript alle 5 Sekunden schauen, ob der TV eingeschaltet wurde und dann ein


    svdrpsend PLUG softhddrm RESU


    aufrufen. Jetzt bleibt nur noch das Problem, dass die Flächen bei den Skins (ich nutze metrixHD) manchmal komplett blau sind (die Icons fehlen dann) oder einen schwarzen Rahmen haben oder durcheinander sind (da, wo die Wolke vom Wetter angezeigt werden sollte tauchen dann teile des Programm-Icons auf o.ä.). Ansonsten Hut ab. Der DRM-Modus fühlt sich auf meinem Lattepanda Alpha sehr geschmeidig an.


    Weiß jemand, ob boblight oder hyperion mit der DRM-Version des Plugins läuft?

  • Ich vermute auch, dass es ein Speicherproblem im vaapidevice ist. Egal welches Skin ich nehme, nach einer Zeit sind alle Icons im OSD durcheinandergewürfelt (getestet mit shady, shady_kidd und metrixhd). Mit dem von 900H erwähnten Plugin tritt das Problem nicht auf.

  • jojo61 : Ich meine schon Dein Plugin. Das betrifft sowohl die softhdvaapi-Version als auch die softhddrm-Version. Den Screenshot kann ich gerne heute Abend machen (ich sitze gerade nicht vor dem VDR). Es dauert immer eine Weile, bis das Problem auftritt. Beim Skin shady ist der Verhalten z.B. so: Ich habe für die Ansicht mit tastendruck "OK" (also Sender, was läuft etc.) eingblendet, dass das Wetter kurz mit angeziegt werden soll. Dann blendet er eine kleine Wolke (unten im Bild) ein und Temperaturen (min/max). Wenn ich dann mit "Menü" ins Menü gehe und mit den Pfeiltasten nach oben oder unten, erscheint die Kleine Wolke (vom Wetter) irgendwann neben den Listeneinträgen (Programme, Kanäle etc.). Ich habe den Eindruck, dass das Problem schneller auftritt, wenn man zwischendurch nach KODI und wieder zurückumschaltet. Es tritt aber auch auf, wenn KODI zwischendurch nicht gestartet wird. Daher meine Vermutung mit dem Speicher. Ich reproduziere das heute Abend und mache einen Screenshot. Bei MatrixHD zeigt es sich so, dass teilweise (wie schon von anderen beschrieben) die Logos in den Memü-Einstellungen fehlen, falsch sind oder nur eine schwarze BOx auftaucht. Teilweise taucht dann aberdas Programm-Logo in einem Stark vergrößerten Ausschnitt bei der Wetter-Anzeige (Taste "Menü") auf, da wo früher die Wolke war. Ich hoffe, ich konnte das einigermaßen sinnvoll beschreiben. Den OSD-Speicher habe ich auf 256 MB oder auch 512 MB gestellt. Das brachte keine Änderung. Ich habe der GPU den maximalen Hauptspeicher zugewiesen, aber auch das bringt keine Änderng.

  • Also ich benutze auf meinem NUC das softhdvaapi mit skindesigner & shady_kiss.

    Kann das von beta beschriebene Verhalten nicht nachvollziehen. Zu softhddrm kann ich nichts sagen.

    Bei mir sind in den Plugin-Einstellungen lediglich 256MB OSD-Speicher zugewiesen.

  • Die größe des OSD speichers sollte hier egal sein. Es gibt in Code noch eine Stelle zwischen dem OSD und dem Videostream anzeigen die nicht verriegelt ist.

    Ich werde das mal verriegeln und dann sehen ob es hilft. Bei "langsamen" CPU könnte das die Ursache sein. Würde mich aber trotzdem über einen Screenshot freuen.


    jojo61

  • jojo61 :


    Hier sind die Screenshots.

    Bei Metrix ist das Feld blaue Feld ab und an leer oder das große Logo erscheint vergrößert wieder da, wo die Wetterwolke sein sollte, bei shady_kiss ist rechts neben dem blauen Balken eine kleine Wetterwolke, die da nichts zu suchen hat (1 Programm). Sie wandert auch mit (Signalinformationen).