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.
>
--
Anssi Hannula