Dominique Dumont domi@komarr.grenoble.hp.com writes:
[...]
At this point, I think there's a problem with the fact that playing ac3 stream is done with:
- set digi converter
- then set the stream format.
If the stream format is not valid when the digi converter is set up, there's a chance that the digi converter goes belly up.
I reckon that setting the stream *then* the digi converter would be safer.
I've not yet tested this theory.
I have been able to shave one step off the workaround, it can be done like this:
1. Turn off IEC958 in alsamixer. 2. Play AC3 stream. 3. Turn on IEC958 in alsamixer while the AC3 stream is playing.
Note that in order to toggle the IEC958 switch while a stream is playing you have to change "true" to "false" in the following setting in /etc/alsa/cards/HDA-Intel.conf:
name "IEC958 Playback Switch" lock false
I'm looking forward to hearing about the outcome if you're going to test reordering the initialization sequence. The question is whether it is sufficient to reorder the sequence, or whether it is actually necessary to start sending data through the converter before turning the digital output bit on.
To confuse things further it also seems to work if you use the default "multiout" device (i.e. don't specify any device). I suppose you have to set the PCM volume to max here, as this device does volume mixing in software.