On 28.01.2012 02:31, Anssi Hannula wrote:
On 27.01.2012 16:12, Dominic Evans wrote:
I have a digital S/PDIF output from my VDR frontend hooked up to a decent home amplifier and surround speakers.
In the past I've had no problems using this via a vdr-sxfe frontend both for stereo MPEG-2 audio, as well as for 5.1 AC-3 on HD channels.
audio.device.alsa_default_device:plughw:0,1 audio.device.alsa_front_device:plughw:0,1 audio.device.alsa_passthrough_device:plughw:0,1 audio.device.alsa_surround51_device:plughw:0,1 audio.output.speaker_arrangement:Pass Through
However, recently (perhaps due to a kernel / alsa update?) I've found that I have to execute `iecset audio on` (to make analog MPEG-2 audio work) and `iecset audio off` (to make AC-3 passthrough work).
Any idea why this might be?
I'm not sure why it worked before (the most obvious reason would be a different amplifier which doesn't care for the IEC/AES status bits, but I'm sure you would've mentioned it if that was the case...).
Instead of "plughw:0,1" for the devices, use e.g. symbolic "plug:iec958" (may need CARD=foo parameter if you have multiple cards, in that case look at "aplay -L" output for the correct value) for normal playback
In case you or someone else needs the CARD=foo, the syntax to set ALSA device parameters when using the 'plug' plugin which I forgot to mention is: plug:'iec958:CARD=foo' or plug:"iec958:CARD=foo"
and "iec958:AES0=0x06" for passthrough.
And the reason I gave no "plug" for passthrough is that any automatic conversion done by the 'plug' plugin would corrupt the raw encoded audio data.
The "iec958" ALSA device will automatically set default IEC/AES values when you open the device, making "iecset audio on" unnecessary. The AES0=0x06 added for passthrough will do the same as "iecset audio off" (i.e. it will set non-pcm bit 0x02 in the AES0 byte, default AES0 being 0x04 (non-copyright bit)) for the duration of playback.