[Tinkerboard] softhddevice-drm

  • Was mir schon aufgefallen ist, die Umschaltzeiten (ich nutze satip) könnten besser sein.

    Das kommt auf die ToDo Liste. Aktuell arbeite ich daran die Qualität von Audio zu verbessern. Danach habe ich mir Deinterlacing vorgenommen. Neue Devices sollen auch noch unterstützt werden. Beim Überfliegen des Kernelcodes ist mir aufgefallen das imx6(Matrix etc.) jetzt scaling und YUV kann.


    Gruss zille.

  • Hallo zille,


    zu Audio ist mir aufgefallen, dass es bisher sehr laut und übersteuert klingt. Kann man dies durch die Optionen im Setup beinflussen oder ist es das woran du arbeitest? ;) Wenn es was neues zum testen gibt, sag Bescheid. Was meinst du mit neue Devices?

    Ich möchte als nächstes einen IR Empfänger (GPIO) konfigurieren, danach einen DVB-T2 Stick (Geniatech T230 DVB-T2 TV Stick)... dazu muss dann noch vdr-2.2 gepatcht werden (h265).

    Das mit imx6 hört sich verdammt interessant an (aktueller >4.14?). :)

    Wenn ich hier was testen kann(imx6), sag bitte Bescheid. :)


    Gruß,

    Uwe

  • zu Audio ist mir aufgefallen, dass es bisher sehr laut und übersteuert klingt

    Der Audio Zweig ist noch original von Johns. Dieses Problem hatte ich noch nicht. In den Einstellungen gibt es Lautstärkenormalisierer, Lautstärkekompressor und Reduziere Stereopegel. Probier das doch mal.

    oder ist es das woran du arbeitest?

    Nein, ich will einen Equalizer einbauen.

    Was meinst du mit neue Devices?

    Softhddevice-drm soll das Matrix und andere auch unterstützen.

    Ich möchte als nächstes einen IR Empfänger (GPIO) konfigurieren

    Das hab ich schon gemacht. Dafür muss der DTB gepacht werden. Das diff häng ich mal an. Das Datenpin hängt an Pin 7, Stromversorgung an Pin 1 (3,3V) und GND an Pin 9.


    Gruss zille

  • Der Audio Zweig ist noch original von Johns. Dieses Problem hatte ich noch nicht. In den Einstellungen gibt es Lautstärkenormalisierer, Lautstärkekompressor und Reduziere Stereopegel. Probier das doch mal.

    Ok, das werde ich mir mal anschauen, danke. Habe gestern noch mitbekommen, das ein VDR Lautstärkepegel von 255 (max) bei softhddevice nicht gut ist und habe ihne mal auf 50% gesetzt. Nun ist es schon deutlich besser.


    Zitat

    Nein, ich will einen Equalizer einbauen.

    Ahh, ok, danke für die Info.


    Zitat

    Softhddevice-drm soll das Matrix und andere auch unterstützen.

    Wow, dass wäre ja richtig cool. 8)

    Sag bitte bescheid, wenn du hier was zum testen hast, dass teste ich dann auch sehr gerne. :)


    Zitat

    Das hab ich schon gemacht. Dafür muss der DTB gepacht werden. Das diff häng ich mal an. Das Datenpin hängt an Pin 7, Stromversorgung an Pin 1 (3,3V) und GND an Pin 9.

    Danke für den Patch, werde mich mal mit den kernel-bau unter armbian(Debian-Stretch) einlesen.... :)


    Gruß,

    Uwe

  • Hallo zillerbaer,


    Danke für das Update. 👍

    Ich starte VDR nun wie folgt:

    Code
    1. vdr --config=/etc/vdr -P'softhddevice-drm -a hw:1,0' -P'satip -d1'

    - wenn ich nun umschalte, hat der nächste Sender kein Ton, bzw. kurz „Mickymouse“ Stimmen. :) Schalte ich zurück, auf den Sender mit dem ich VDR startete, dann funktioniert der Ton wieder.

    - ich hatte gestern auf Sat1 keine Sprache, sondern nur Hintergrundtöne. Wie muß das Plugin konfiguriert werden, damit 5.1 auf 2.0 gemischt wird? (unsupported channels) . Beim Fußball gerade ist dies ganz gut....man hört kein Reporter. :D

    - die CPU-Last bei HD Sendern(720p) bei 1080p Auflösung, liegt hier bei ~40% :) , bei SD Sendern leicht höher (deinterlacer?)


    Log-Files(syslog) :


    Gruß

    Uwe

    Dieser Beitrag wurde bereits 3 Mal editiert, zuletzt von Uwe ()

  • Wie muß das Plugin konfiguriert werden, damit 5.1 auf 2.0 gemischt wird?

    Warum nutzt Du eine 5.1 Tonspur wenn Du ein Stereo Signal brauchst? Ob das wieder eingebaut wird weiss ich heut noch nicht. Da gibt es noch viel vorher zu tun. Mit dem EQ tönen meine grossen Boxen in Stereo hier wunderbar!

    bei SD Sendern leicht höher (deinterlacer?)

    Nein, SD wir in SW decodiert. Deinterlaced wird aktuell gar nicht. Die Bildinformationen werden pro field nur hoch scaliert. Ein Deinterlacer steht ganz oben auf der ToDo Liste.


    Gruss zille

  • Im git habe ich einen Software Deinterlacer eingepflegt. Bis jetzt wurden die field Informationen in den FB kopiert und dann im Scaler vergrössert. Linien wie bei ntv haben dadurch oft gezittert. Das passiert mit dem SW Deint nicht mehr. Dafür braucht der aber ca. 50% CPU Last. In den Einstellungen kann sich jeder entscheiden.


    Gruss zille

  • README

    Code
    1. TODO:
    2. -----
    3. other devices

    Hast Du hier schon was gemacht bzw. getestet?


    vdr-User-# 755 to_h264 chk_r

  • Nen Cubietruck hab ich auch noch, ich dachte da aber eher an Nvidia und Intel.


    vdr-User-# 755 to_h264 chk_r

  • Hi zillerbaer,


    ich habe eine Verständnisfrage zu softhddevice-drm: Die Frames werden direkt über drm dargestellt, richtig?

    Und wer decodiert? FFMpeg? Dann wäre es ja ähnlich der Kodi-Implementierung für Allwinner...


    Gruß

    Andreas

  • Allwinner nutzt bei Kodi libva als frontend zu ffmpeg. Das sollte einfacher gehen über den v4l2 HW Decoder in ffmpeg. Ich werde das mal probieren.


    Gruss zille

    Das wird daran liegen, dass das libva-v4l2-request Backend genutzt wird, das ja auch mit dem Kernel Treiber zusammenpasst, der die neue Request API nutzt.

    Ohne den v4l2 Decoder in FFMPEG an die Request-API anzupassen, wird das wohl nicht gehen.

    Am besten wäre es natürlich, wenn alle Programme direkt V4L2 nutzen, aber das ist ein bißchen Arbeit. In der Zwischenzeit gibts den "Umweg" über libva-v4l2-request. Der Autor von libva-v4l2-request hat mir gerade gesagt, dass das Backend relativ vollständig implementiert ist. Dann gibts die Hoffnung, dass dein softhddevice-drm gar nicht so großartig angepasst werden müsste.


    Gruß

    Andreas


    PS: Ich überlege mir gerade, ob ich nicht mal wieder meinen OpenGL/ES Code für das OSD auspacken sollte. Das würde das ganze ja toll ergänzen, wenn man das auf ein zweites drm-plane schiebt ...

  • Ohne den v4l2 Decoder in FFMPEG an die Request-API anzupassen, wird das wohl nicht gehen.

    Ich habe noch nicht richtig verstanden was geändert wurde. Aber ich bin der Meinung das die Änderungen Kernel intern zwischen v4l und den HW Implementirungen ist. Im user space hab ich noch keine Änderungen gefunden.

    Der Autor von libva-v4l2-request hat mir gerade gesagt,

    Hat er auch was zu HW Deinterlacing gesagt?

    Ich überlege mir gerade, ob ich nicht mal wieder meinen OpenGL/ES Code für das OSD auspacken sollte.

    Nur zu!


    Gruss zille.

  • Ich habe noch nicht richtig verstanden was geändert wurde. Aber ich bin der Meinung das die Änderungen Kernel intern zwischen v4l und den HW Implementirungen ist. Im user space hab ich noch keine Änderungen gefunden.

    Naja, so wie ich das verstanden habe, wurde schon etwas verändert, da wie gesagt die RequestAPI eingebaut wurde. Bzw. ist das noch nicht im Kernel, sondern soll in den 4.20er wandern. Dsa Patchset liegt hier: https://git.linuxtv.org/hverku…ia_tree.git/log/?h=reqv16
    Darauf basiert auch der aktuelle Cedrus Treiber. Im Beispielprogramm wird z.B. dieser ioctl https://github.com/bootlin/v4l…t/blob/master/v4l2.c#L724 aufgerufen, der damit erst eingeführt wurde. Insofern wäre der V4l2 Treiber für die reinen M2M decoder im FFMPEG anzupassen - oder eben man geht derweil den Umweg über libva-v4l2-request.

    Zitat

    Hat er auch was zu HW Deinterlacing gesagt?

    Nur zu!


    Gruss zille.

    :)
    Nein, der ist dafür nicht zuständig. Ich habe nur nachgefragt, wie denn der einzubauen wäre. Wie ich das sehe, müsste man den Deinterlacer für A10/A20 wohl im drm Kerneltreiber miteinbauen, da der Teil des Scalers ist. Für H3/H5 etc. würde es ausreichen, den vorhandenen Treiber in ein v4l2 m2m-device umzuschreiben... Hört sich allerdings nach Arbeit an, obwohl da zumindest Beispiele vorhanden wären...


    Gruß
    Andreas