[Announce] softhddevice mit mmal Ausgabe

  • Interessante Entwicklung, die hier passiert!


    Ich will keinesfalls den Thread entern, aber hier werden ein paar Dinge durcheinander gebracht:

    Das heißt, OpenMax gibt Bild und Ton direkt an den Grafiktreiber weiter, und der teilt dann Bild und Ton auf.

    Die GPU teilt nichts auf, Audio und Video gelangen durch separate Pfade zur Ausgabe. Aber OpenMax (genauer gesagt die GPU, OpenMax ist nur ein Framework) stellt eine Methode zur Verfügung, die beiden Pfade zu synchronisieren. Konkret einen Video-Scheduler, der die decodierten Video-Frames puffert und, gesteuert durch die Audio-Ausgabe, diese synchron dem "Display-Manager" zur Ausgabe weitergibt. Dieser Mechanismus ist auch nicht RaspberryPi-spezifisch, ein identischer Mechanismus ist auch bei den Amlogic-SoCs zu finden.


    Im Kodi z.B. kann man dazu mmal & alsa verwenden.

    MMAL ist, vereinfacht gesagt, eine Weiterentwicklung von OpenMax, bietet aber die selben Möglichkeiten bezüglich Audioausgabe. Sowohl Kodi wie auch sofhddevice haben aber eigene Mechanismen zur A/V-Synchronisation implementiert und können deshalb den Ton unabhängig über ALSA ausgeben und sorgen selbständig für die zeitgerechte Darstellung der Video-Frames.


    Unter dem rpihddevice, welches zur Ausgabe von Bild & Ton auf den omxplayer zurückgreift, geht das aber nicht.

    OT: rpihddevice nutzt nicht omxplayer, aber OpenMax als gemeinsames Framework. Das könnte genau so gut MMAL sein, doch der war zu der Zeit schlicht nicht verfügbar. Im Gegensatz zu omxplayer nutzt rpihddevice aber den ilclient, eine Library von Broadcom um die Programmierung von OpenMax ein wenig zu vereinfachen.


    Gruss
    Thomas

  • reufer,
    Danke für die vielen weiteren Details. :)


    Das mit rpihddevice & omxplayer hatte ich dann wohl falsch in Erinnerung. Jedoch ist das Problem der Audio-Ausgabe für den Endnutzer bei beiden das gleiche:
    Es ist keine Möglichkeit implementiert den Ton via Alsa auszugeben.

  • reufer,
    eine gute Erklärung. Danke!


    Eine Anmerkung noch. Ich halte es für bedenklich das userspace Bibliotheken (OpenMax / MMAL) auf die Hardware zugreifen. Der Zugriff auf Mikrofon, Kamera, Desktop, Lautsprecher, etc ist nahezu ungehindert möglich. Die Hardware wird unter Linux eigentlich ausschliesslich vom Kernel verwaltet. So sollten die Hersteller meiner Meinung nach linuxtypische Schnittstellen wie KMS/DRM, v4l und alsa benutzen. Aber das können wir nicht ändern.


    Gruss zille.

  • @Zille,


    warum ich explizit nach Kernel >4.4 gefragt habe ist, dass ich dort im Changelog einiges bezüglich KMS Treiber für RPI aufgeschnappt habe.


    Mein erster Gedanke bei mmal war folglich:
    Das wird wohl was mit den neuen Grafiktreibern zu tun haben.


    http://www.phoronix.com/scan.php?page=article&item=linux-44-features&num=1

    Zitat

    - There's a Raspberry Pi KMS driver that's finally landed after the extensive work done by Eric Anholt at Broadcom. Unfortunately for Linux 4.4, this Raspberry Pi kernel graphics driver is just for kernel mode-setting and doesn't yet handle 3D hardware acceleration or power management. Eric is still working on that acceleration code as well as the accompanying VC4 Gallium3D driver.


    http://www.phoronix.com/scan.php?page=article&item=linux-45-features&num=1

    Zitat

    - While the VC4 DRM driver was previously added as the Raspberry Pi kernel mode-setting driver, the kernels up to now haven't had the necessary bits for supporting 3D/OpenGL in conjunction with the new VC4 Gallium3D driver from Mesa. However, with Linux 4.5 those needed kernel bits are in place for having a fully open Raspberry Pi 3D driver stack.


    https://dri.freedesktop.org/wiki/VC4/

  • Hi.
    Hab das jetzt interessehalber auch mal probiert. BILD funktioniert prima, aber was muss ich angeben um über HDMI Ton zu bekommen?

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Hallo Zille,


    Ich habe leider immer noch kein Bild (nur Ton). Ich habe allerdings auch auf die letzte Firmware ge-upgraded (inkl. neuester Kernel).
    Ich werde auf einer anderen SD-Karte noch einmal eine neue Installation machen...


    Gruß
    Beta

  • beta
    Hast du Ton über HDMI? Was hast du als Audio angegeben?
    Egal was ich mache, ob

    Code
    -a hw:0,0

    oder

    Code
    -a hw:0,1

    oder den Parameter ganz weg lassen. Ich bekomme keinen Ton raus.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Hallo Beta,
    am Dienstag habe ich Raspbian-lite geladen um das Makefile anzupassen. Da wird wohl nix altes drin gewesen sein. Gibt es Fehlermeldungen auf der Console?


    vectra130,
    HDMI Sound nutze ich nicht. Die Einrichtung ist wie beim normalen softhddevice. Auf der Soundseite wurde nix verändert.


    Gruss zille

  • Hallo,

    beta
    Hast du Ton über HDMI? Was hast du als Audio angegeben?
    Egal was ich mache, ob

    Code
    -a hw:0,0

    oder

    Code
    -a hw:0,1

    oder den Parameter ganz weg lassen. Ich bekomme keinen Ton raus.

    bei mir ist kommt der Ton immer über HDMI, egal, was ich einstelle. Bild habe ich keines und das log zeigt nichts verdächtiges. Ich vermute, dass die neuere Firmware und/oder der Kernel dazu beiträgt.


    @Zille: Funktioniert es bei Dir noch, wenn Du ein sudo rpi-update machst?


    Gruß
    beta

  • @Zille: Funktioniert es bei Dir noch, wenn Du ein sudo rpi-update machst?


    Nu! Brauchte nicht mal neu kompilieren.


    Zitat

    Bleib bei Gentoo!

    Ja natürlich! Ich teste nur!


    Gruss zille

  • aplay -l sagt

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Ne, leider auch nix.
    Hab das Gefühl mir fehlt irgendwas. Habe gerade folgende zwei Zeilen im Log entdeckt

    Code
    Apr 17 01:06:49 vdr2 vdr: audio: 'alsa' output module isn't supported
    
    
    ...
    
    
    Apr 17 01:06:51 vdr2 vdr: audio: 2 channels unsupported

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Hab gerade mal nachgesehen. Bei mir ist libasound2 und libasound2-data installiert libasound-dev fehlt tatsächlich. Merkwürdig das es dann so gebaut hat. Ich Testes nachher Mai mit dem dev Paket nochmal.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

Jetzt mitmachen!

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