[mythtv-users] AC3 and/or S/PDIF (again)

Joshua M Thompson funaho at jurai.org
Fri Jan 20 03:10:09 UTC 2006


On Thu, 2006-01-19 at 21:45 +0000, Nick wrote:
> On 19/01/06, Chad <masterclc at gmail.com> wrote:
> 
> > Found the thread, here's the quote:
> > ---------------------------------------------------------------------------------------------------------------------
> > To answer myself my own question: yes, it is possible. The
> > following .asoundrc (have spent whole evening on figuring it out :-)
> > does exactly what I always wanted:
> > =========
> > pcm.!default {
> >    type plug
> >    slave {
> >        pcm "spdif"
> >        rate 48000
> >        format S16_LE
> >    }
> > }
> > =========
> > BTW, the "format" line might not even be necessary. The key is the "rate
> > 48000" (converts 32 and 44 kHz to SPDIF's 48 kHz) and pcm
> > "spdif" (routes sound via the digital out). With this and "ALSA:default"
> > set up everywhere (both TV and Music) everything plays correctly via the
> > digital out, including real digital AC3 5.1 passthrough sound from HD
> > channels. I am excited!
> > ------------------------------------------------------------------------------------------------------------------
> >
> > If I had found it on gossamer I'd link you to it, but I found it in my
> > email archives, so it won't do you much good ;)
> 
> Here's the link:
> 
> http://www.gossamer-threads.com/lists/mythtv/users/172897

This thread inspired me to take another crack at making AC3 work in myth
(it never has before, been trying since 0.17). It works fine in mplayer
so I know the hardware is set up correctly. But after much messing
around I *finally* figured out what's going on. Here's what I
discovered:

play regular PVR350 recording (48 KHz audio): works fine
play HDTV recording with AC3 audio: brief burst of noise/audio and then
silence

Now, if I run "iecset audio off" and then play a file with AC3 I get AC3
audio, but of course then regular audio doesn't play until I "iecset
audio on" again. Seems myth isn't flipping this setting on the device
when doing AC3 pass-through (at least, as of SVN 8571). I peeked at the
Mplayer source and it looks like it's as simple as appending some data
to the device name, like so:

ALSA:iec958:{ AES0 0x02 }

And in fact if I set this as the device in Myth then I can play AC3
(though not regular audio, of course.)

Any ideas? I can't seem to make the receiver ignore this bit and buying
a new one isn't really an option at this point.

Now I'd be happy to make this patch to libmyth to alter the device name
as needed but I can't see any spot where the actual format of the audio
stream is being passed down to the library; it looks like at this level
the format is just S16_LE with no markers as to whether or not it's
actually AC3/DTS data.

-- 
Joshua M Thompson <funaho at jurai.org>



More information about the mythtv-users mailing list