On 04/19/2011 02:03 PM, pl bossart wrote: > I finally managed to figure out why eac3 wouldn't work in passthrough > mode. Apparently my HDMI receiver will only lock on eac3 data if the > AES0 control is set to 0x06 (non-audio, ie iec61937). > > ffmpeg -acodec copy -i csi_miami_5.1_256_spx.eac3 -f spdif outfile.pcm > aplay -Dhdmi:AES0=0x6 -fs16 -c2 -r192000 outfile.pcm > > the same file plays well through pulseaudio if I modifed default.conf to > [Mapping hdmi-stereo] > device-strings = hdmi:%f,AES0=0x06 > channel-map = left,right > priority = 4 > direction = output > > Somehow we need to find a way to set this AES0 byte when opening the > iec958 or hdmi device in the passthrough code, and reset it back to > 0x04 for PCM playback (should be fairly easy to do by looking at the > code of iecset in alsa-utils). Beats me why this was not needed for > plain ac3, but setting the audio bit is actually the correct thing to > do. > So far I haven't been able to get anything except stereo working with passthrough. It seems to me that selecting multiple channels in passthrough mode would be very similar to the necessary AES0 changes, so maybe we can get that fixed too. I've basically hit a wall by only being able to passthrough 192khz stereo. When the passthrough data rate exceeds the available rate, my code clips the data packets. Which seems to work OK when the excess is maybe 200 bytes or so. On some HD DTS I'm clipping more like 2K per packet which results in some very nasty sounds emanating from the speakers.