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.

_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

Reply via email to