yavdrdb.hdf / asound.conf > Erläuterung gesucht

  • Was hat es ganau mit den Sound-Einstellungen in der /var/lib/yavdrdb.hdf auf sich?


    aplay -l gibt mir auf meinem VDR #2 aus:


    Code
    1. Karte 1: Device [USB Sound Device], Gerät 0: USB Audio [USB Audio]
    2. Sub-Geräte: 0/1
    3. Sub-Gerät #0: subdevice #0


    D.h., ein Eintrag mit:


    Code
    1. pcm.!default {
    2. type hw
    3. card 1
    4. device 0
    5. }


    bringt mir den Sound auf meiner externen USB-Karte. Soweit so gut.


    Auf meinem VDR #1 ist die asound.conf aber leer und die
    /var/lib/yavdrdb.hdf enthält:


    Code
    1. ...
    2. analog {
    3. card = 0
    4. device = 0
    5. }
    6. ...
    7. sound {
    8. type = analog
    9. }


    wegen aplay -l


    Code
    1. Karte 0: Intel [HDA Intel], Gerät 0: AD198x Analog [AD198x Analog]
    2. Sub-Geräte: 0/1
    3. Sub-Gerät #0: subdevice #0


    auch korrekt, da ich hier Sound über die Onboard-Karte ausgebe.


    Wie kann ich meinem VDR #1 nun abgewöhnen, auf die asound.conf angewiesen zu sein, wenn doch offenbar alles über die yavdrdb.hdf konfiguriert werden kann. Wie muss hier die Syntax lauten?


    Ein Eintrag in dieser Datei mit


    Code
    1. analog {
    2. card = 1
    3. device = 0
    4. }
    5. }
    6. }
    7. sound {
    8. type = analog
    9. }



    und leerer asound.conf (vgl. VDR #1) gibt mir nämlich keinen Sound aus!


    Hintergrund meiner Frage ist, die Zusammenhänge verstehen zu können, um vollen DolbyDigital-Sound auf meier externen Karte konfigurieren zu können (evtl. über die PassThrough-Einstellung im WFE und Anpassungen an Konfigs).

  • kurze Variante: Das ist kompliziert und soll in absehbarer Zukunft ersetzt werden. :)


    lange Variante: Ich hab nur begrenzte Ahnung...


    Bei Installation werden alle Audio-Ausgabegeräte abgeklappert und mehr oder weniger gut geraten, was ein analoger, was ein SPDIF und was ein HDMI-Ausgang ist.
    Die werden dann unter system/hardware/alsa jeweils in "analog", "digital" und "hdmi" eingetragen, bei mir mit einer onboard und einer NVidia-Karte sieht das so aus:


    Dann wählt man im WFE die gewünschte Ausgabevariante aus (lassen wir mal "auf alle Geräte" weg, das versucht eine krude asound.conf zu erzeugen, um ALSA dazu zu bewegen, auf alle Karten was auszugeben - taugt nicht), das wird unter system.sound.type gespeichert (analog, digital, hdmi, passthrough).


    Dann wird das Template für die asound.conf aktiv und versucht, die erkannten Karten je nach Ausgabevariante einzutragen.
    Und dann soll alles funktionieren...


    In Wirklichkeit wechseln gerne mal die Reihenfolge der Soundkarten, dann muss die Soundkarte natürlich auch initialisiert sein, bevor der vdr bzw. das vdr-frontend starten usw. usf.


    Momentan arbeiten wir daran, dass man im WFE direkt die Soundkarte auswählt, die man haben möchte. Und die wird dann mit dem Namen der Karte in der asound.conf eingetragen. Dann ist die Reihenfolge der Karteninitialisierung auch egal.
    Bei mir (da ich analoge Ausgabe habe) sieht die dann so aus:

    Code
    1. pcm.!default {
    2. type hw
    3. card Intel
    4. device 0
    5. }
    6. ctl.!default {
    7. type hw
    8. card Intel
    9. }


    Und zusätzlich habe ich gerade heute Abend angefangen, mir pulseaudio mal anzusehen (um den ganzen Kram mit den Soundkarten loszuwerden und den User einfach mit pavucontrol das einstellen zu lassen, was er haben will).
    Aber dazu brauche ich erst mal eine vernünftige User-Session usw., und da ich mich da noch nicht so wirklich auskenne, muss ich erst mal viel lesen. :)
    Aber dann wird einfach alles auf pulseaudio umgebogen und für softhddevice wird die asound.conf dann so aussehen:

    Code
    1. pcm.!default {
    2. type pulse
    3. }
    4. ctl.!default {
    5. type pulse
    6. }


    Bis jemand pulseaudio-Unterstützung in softhddevice eingebaut hat (vielleicht mache ich das am Ende, wenn das erst mal steht).


    Ich weiß nun nicht genau, was dein vdr#1 für Hardware hat, wenn "aplay -l" aber nur eine Karte ausgibt, dann kann "card = 1" nicht funktionieren, weil es die ja gar nicht gibt.
    Und nur das Ändern der Werte in der yavdrdb.hdf reicht noch nicht, es müssen auch alle betroffenen Template mit process-template neu generiert werden.
    Die vollständige Ausgabe von "LANG=C sudo aplay -l" würde helfen.


    Bei mir:


    Die Namen, die aplay ausgibt, taugen leider nicht, um sie in die asound.conf einzutragen, dazu muss man dann ein wenig mit der libasound2 programmieren (oder pyalsa), um die internen Namen zu bekommen.
    Bei mir sind sie "Intel" und "NVidia" und nicht "HDA Intel" und "HDA NVidia".


    Lars.

  • Danke für Deine Ausführung, die zumindest etwas Licht ins Dunkel bringt.


    Was mir noch nicht klar ist:


    1) Unter welchen Umständen eine leere asound.conf generiert wird
    2) Ob die asound.conf auch für Digital-Soundausgabe (echtes DolbyDigital) oder nur für pcm-Sound benötigt wird
    3) Wie nach dem Umbau von Soundkarten eine neue yavdrdb.hdf generiert werden kann

  • 1) Einfach den if-Anweisungen folgen:
    https://github.com/yavdr/yavdr…s/etc/asound.conf/10_main


    2) siehe 1


    3) das weiß ich jetzt auch nicht so genau. Dazu müsste man das find-alsa-devices neu aufrufen. Änderungen an der Hardware sind nicht vorgesehen... :)


    Ich hoffe, ich bekomme am Wochenende unstable auf pulseaudio umgestellt, dann kann es in den nächsten Wochen mal nach testing. Was auch immer man dann an komischen Settings aufbauen will, darf man dann mit pavucontrol konfigurieren. Dann sollte eigentlich jeder glücklich werden.


    Lars

  • Ich habe über meine externe USB-Soundkarte echte DolbyDigital-Soundausgabe zum Receiver nur über das softhddevice-Plugin hinbekommen:


    1) Im Webfrontend: Einstellungen, allgemein, vdr-plugin-softhddevice (experimental), Soundausgabe habe ich auf
    "Ausgabe an allen Geräten" eingestellt, dann aber die asound.conf entsprechend meiner "aplay -l" Ausgabe angepasst
    2) Im YaVDR-Menü: System, Einstellungen, DVB, Dolby-Digital-Ton benutzen: ja
    3) Analoge Sound-Kabelverbindung trennen, denn nach 3) wird ein extrem lautes Rauschen über die analogen Soundkartenausgänge ausgegeben!!
    4) Im YaVDR-Menü: System, Einstellungen, Plugins, softhddevice (dieser Eintrag switcht je nach unter 1) eingestelltem)
    -> Audio, Pass-Through Standard: ein, ac-3 pass-through: ein, mit OK bestätigen
    5) Beim Fernsehen darauf achten, dass auch 5.1 Ton ausgestrahlt wird: Menü, <grün> (Audio), -> 5.1 wählen
    -> "DOLBY DIGITAL" erscheint am Receiver.



    Geht das auch irgendwie für die vdr-sxfe@vdr-plugin-xineliboutput Ausgabe?

  • https://github.com/yavdr/yavdr…1_audio_spdif_passthrough
    So sieht das Template aus, dass die Audio-Konfiguration für "digital"-Ausgabe für vdr-sxfe steuert. Evtl. auch mal in die andere reinsehen.
    Da gibt's z.B.:

    Code
    1. audio.output.speaker_arrangement:Pass Through


    Außerdem gibt es eine Einstellung "audio.device.alsa_passthrough_device:".
    Einfach mal mit der Datei unter /etc/vdr-sxfe/config_xineliboutput herumspielen und wenn du die richtigen Werte gefunden hast, diese in ein custom-template eintragen.


    Lars.

  • Ich geh mal davon aus, dass das mein zu konfigurierender Bereich ist:


    Code
    1. # Gerät für 5.1-Kanalausgabe
    2. # string, default: iec958:AES0=0x6,AES1=0x82,AES2=0x0,AES3=0x2
    3. # audio.device.alsa_passthrough_device:w:iec958:AES0=0x6,AES1=0x82,AES2=0x0,AES3=0x2


    Da muss ich erst noch rausbekommen, was ich hier für meine USB-Karte eintragen muss und was die AES-Einträge bedeuten.