[yavdr 0.5] Probleme mit Ton passthrough

  • Hallo zusammen,


    nachdem ich jetzt endlich das Problem mit der TeVii S480 V2.1 gelöst habe, gibt es nur noch ein Tonproblem:


    Mein VDR (wie in der Signatur), ist über den onboard SPDIF des Asus P5B an einen Denon AVR 3802 Receiver angeschlossen. Ich höre immer alles über den Receiver, benötige also nur eine Tonausgabe über SPDIF.


    Analogton über SPDIF funktioniert auch wunderbar, bloß bei allem was per passthrough ausgegeben wird hapert es bei mir. Das Verhalten ist über softhddevice und XBMC das selbe. Sobald ich eine AC3 oder DTS Tonspur auswähle, kommt mit etwas Glück ein knacken und rauschen, dieses kann ich dann per iecset audio off zu einem Dolby-Digital Ton umschalten. Wenn ich dann wieder zurück auf eine Stereo-Tonspur schalte ist diese stumm bis ich per iecset audio on wieder das Data Bit des iec zurückgeschaltet habe. Häufig habe ich aber auch einfach gar keinen Ton bei AC-3 und kann mit iecset soviel rumspielen wie ich möchte.


    Da ich beim XBMC auch schon so ziemlich alle Kombinationen ausprobiert habe ohne dauerhaft Erfolg (also auch nach einem reboot) zu haben gehe ich von einem Alsa Problem aus.


    Meine Einstellungen sind folgendermaßen:


    Webfrontend:
    VDR-Frontend: softhddevice
    Audio: Digital (TOSLINK/SPDIF)


    VDR:
    Einstellungen->DVB->Dolby-Digital Ton benutzen -> ein


    Softhddevice:
    Audiodelay = 0
    Audio drift correction = None
    Audio pass-through: AC-3
    Enable AC-3 (decoder) downmix = nein
    Volumecontrol = Software
    Enable normalize volume = nein
    Enable volume compression = nein
    Reduce stereo volume = 0
    Audio buffer size = 0



    XBMC:
    Audio Ausgabe -> Optisch/Koaxial
    Lautsprecherkonfiguration -> 5.1
    Lautstärke bei Downmix erhöhen -> ein
    -Receiver unterstützt AC3 -> ein
    -Receiver unterstützt DTS -> ein
    Audio Ausgabegerät -> default
    Digital Ausgabegerät für Passthrough -> iec958


    Code
    1. aplay -l**** Liste der Hardware-Geräte (PLAYBACK) ****
    2. Karte 0: Intel [HDA Intel], Gerät 0: AD198x Analog [AD198x Analog]
    3. Sub-Geräte: 1/1
    4. Sub-Gerät #0: subdevice #0
    5. Karte 0: Intel [HDA Intel], Gerät 1: AD198x Digital [AD198x Digital]
    6. Sub-Geräte: 0/1
    7. Sub-Gerät #0: subdevice #0



    Meldung im syslog:


    Code
    1. Oct 26 14:49:58 yavdr vdr: audio/alsa: using ac3 device 'default'
    2. Oct 26 14:49:58 yavdr vdr: audio/alsa: start delay 336ms


    Meldungen im XBMC Log:

    Code
    1. 15:03:12 T:140348660553600 ERROR: PulseAudio: Failed to connect context
    2. 15:03:12 T:140348660553600 ERROR: PulseAudio: Failed to create context


    /etc/asound.conf

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


    /etc/vdr/plugins/plugin.softhddevice.conf


    im alsamixer habe ich alles auf 100% stehen, nichts gemutet und auf PCM ausgabe.


    Wenn mit iecset Data auf Audio steht, dann kommt bei AC-3 ein Rauschen und knacken, wenn Data auf non-Audio steht ist es bei zwei Kanal AC-3 still und bei 5.1 Kanal AC-3 kommt Ton, wenn ich einmal AC-3 Ton habe kann ich auch auf zweikanal AC-3 umschalten und habe Ton.


    Komischer weise hat man ab und an die volle Funktion wenn man oft genug mit iecset gespielt hat oder öfter nacheinander per Webfrontent die Audioeinstellung gespeichert hat oder den vdr Prozess öfters restartet hat. Leider ist nach einen reboot des Systems alles wieder beim alten.


    Wenn ich in der /etc/vdr/plugins/plugin.softhddevice.conf als device iec958 eintrage und die AES0 Parameter setzte zeigt der Verstärker mir zwar Dolby Digital an aber es kommt kein Ton.


    Was mich etwas stört sind die Pulseaudio Meldungen im XBMC Log, so weit ich das sehe ist beim aktuellen yavdr gar kein Pulseaudio installiert.


    Da ich ja eigentlich einen 0 8 15 yavdr ohne irgendwelche Besonderheiten habe, kann ich doch eigentlich nur eine Kleinigkeit übersehen haben. Daher bin ich für jede Hilfe Dankbar.


    Gruß


    Luser

  • Hallo,


    da hier scheinbar niemand eine Lösung für mein Problem hat, habe ich nach langen experimentieren herausgefunden was schief läuft:


    1. Ich muß per /etc/vdr/plugins/plugin.softhddevice.conf den AES0 Wert stellen (0x4 für analog und 0x6 für Digital passthrough)
    TIPP: als Device copy&paste aus der aplay -L Ausgabe also nicht card=0 sondern CARD=Intel und am Ende ,AES0=0x4 für analog und ,AES0=0x6 anhängen
    Beispiel: -D -a iec958:CARD=Intel,AES0=0x4 -p iec958:CARD=Intel,DEV=0,AES0=0x6


    2. Nachdem der VDR gestartet ist oder ich auf XBMC gewechselt habe wird der IEC958 Ausgang gemutet => kein digital Ton


    Das zweite Problem habe ich durch einen upstart Job gelöst der 3 Sekunden nach VDR oder XBMC start den Ausgang mutet und wieder unmutet. Nachteil ich habe evtl. die ersten 3 Sekunden keinen VDR Ton bzw. nach drei Sekunden einen kurzen Tonaussetzter. Das einzige Problem was ich jetzt noch habe, ist wenn ich im XBMC einen Film mit DTS Tonspur starte wird das Interface wieder gemutet. Wenn ich nun von Hand das Upstart Script nochmals starte funktionier alles. Gibt es eine Möglichkeit ein Upstartscript bei bestimmten XBMC Ergeignissen auszulösen?


    Ich habe auch schon an eine watchdog mittels amixer für den Ausgang gedacht. Das Problem ist nur, dass der Ausgang auf unmute stehen kann wenn der Ton weg ist. Erst wenn gemutet und wieder ungemutet wird ist der Ton wieder da. Leider gibt es beim muten und direkten unmuten immer einen kurzen Tonaussetzer, so das man mit einem cron-Job der stumpf jede Minute das Interface "reaktiviert" nicht weiterkommt.


    Gruß


    Luser

  • Moin!


    Ich kenne mich nicht so richtig damit aus, aber ich weiß, dass manche Leute bestimmte Programme auf bestimmte Fernbedienungstasten legen (/etc/lirc/lircrc).
    Dann kannst du es einfach auslösen, wenn du keinen Ton hast.


    Lars.

  • Hallo zusammen,


    ich habe das Problem wie mini73 vorgeschlagen hat gelöst, ich muss jetzt zwar bei jedem Start vom Softhddevice die Taste auf der Fehrnbedienung drücken, habe dafür dann aber stabilen Ton in allen Spielarten.


    Hier mein script:


    Shell-Script
    1. #!/bin/sh
    2. /usr/bin/amixer sset 'IEC958',0 mute
    3. /usr/bin/amixer sset 'IEC958',0 unmute
    4. /usr/bin/amixer sset 'IEC958',0 playback 100%


    Danke und Gruß


    luser