[mythtv] [mythtv-commits] Ticket #1104: multi channelaudio support

Michael T. Dean mtdean at thirdcontact.com
Wed Aug 16 12:12:47 UTC 2006


On 08/15/2006 12:33 AM, Mark Spieth wrote:

>>Analog and ac3, don't know about german channels providing dts ;)
>>    
>>
>the 6 analog channels out (for me) are
>L,R        -> audio out plug 1
>C,LFE    -> plug 2
>SR,SL    -> plug 3
>
>afaict this is standard.
>will do some testing over the weekend or earlier if I have time with my 
>limited setup.
>
>does your channel have 6ch audio? (including LFE/subwoofer)
>can you get the startup part of the frontend log to see what the audio part 
>is doing.
>

The "standard" in ALSA is described in the comments in 
/usr/share/alsa/pcm/surround*.conf .  The standard for 7.1 audio is:

#  Hardware output from 7.1 speakers
#  Samples must be positioned:
#    chn0 - front left
#    chn1 - front right
#    chn2 - rear left
#    chn3 - rear right
#    chn4 - center
#    chn5 - lfe
#    chn6 - side left
#    chn7 - side right

And 5.1 is the same but without channels 6 and 7.  (Channels 6 and 7 are 
incorrectly labeled 7 and 8 in the comment.)

However, some hardware doesn't use this standard.  For that hardware, 
different configurations are specified using a translation table 
(ttable) in the "standard" surround device aliases (i.e. surround40, 
surround51, surround71, etc.) in /usr/share/alsa/cards/*.conf .  
Therefore if using non-standard hardware /AND/ using an ALSA built-in 
device alias, your non-standard hardware will react as would standard 
hardware.

Specifically, the ICE1724, ICH, ICH4, NFORCE, and VIA8237 all use 
non-standard channel-output mapping for surround.  (So, Mark, if your 
"standard" is based off one of these cards hardware usages, it's not the 
real standard.)

Anyone using a custom definition for his/her audio could add a 
translation table to the custom device alias in /etc/asound.conf or 
~/.asoundrc.  Asking the users to learn enough about ALSA to do so may 
be more than we should expect, though.  (See 
http://www.gossamer-threads.com/lists/mythtv/users/134552#134552 for 
more on ttable.)  Unfortunately, that means the only way to know for 
sure which mapping the hardware uses is to parse the 
/usr/share/alsa/cards/*.conf files, but the only way to know if we 
should use the hardware mapping (instead of ALSA default) is to also 
parse the /etc/asound.conf or ~/.asoundrc and to find out whether the 
device alias specified to Myth is an ALSA built-in or a redefined custom 
version of the ALSA built-in or a custom alias that slaves to one of the 
ALSA built-ins or a custom alias that provides its own translation 
table.  Obviously, none of this should be done by Myth...

For now, Jan, what happens when you change your MythTV audio output 
device to "ALSA:surround51"?  With that, you'll be using an ALSA 
built-in alias, so you'll get the ALSA-standard mapping, so if Mark used 
the ALSA standard for the patch, you should get proper output to the 
proper speakers (assuming your speakers are connected to the correct 
outputs ;).

Mike


More information about the mythtv-dev mailing list