I see that a lot of people have trouble getting digital audio pass through to a Doly Digital/DTS capable amplifier/receiver via s/pdif (Sony/Philips digital interface) working in XBMC. I had these troubles too. Mostly because Pulseaudio does not support passtru (what a piece of crap!). I had to give the same advise over and over again so I thought: "I'll write my tips 'n' hints in one post to refer to each time.". Well, this is it. Beware: I'm no developer and no expert what so ever! This post will contain errors and mistakes and it's not guaranteed that it will solve your specific probelem.
1. To get digital audio pass through from a computer running Linux and XBMC
- Remove PulseAudio (PA)! Example for Ubuntu 10.04 The Lucid Lynx LTS (use copy/paste):
sudo apt-get purge pulseaudio gstreamer0.10-pulseaudio
sudo apt-get autoremove
sudo apt-get install alsa-base alsa-tools alsa-tools-gui alsa-utils alsa-oss linux-sound-base alsamixergui
sudo apt-get install esound esound-clients esound-common libesd-alsa0 gnome-alsamixer
- run gstreamer-properties in terminal and defaults to alsa
- remove gstreamer0.10-pulseaudio to get sound in totem
- (gnome-)alsamixer is for changing the volume
- Start gome-alsamixer or simply alsamixer from the command line (optionally: install it first). Make sure 'IEC958 Output' is set.
- In XBMC itself "fiddle" a bit with: "Settings --> System --> Audio output". Set 'Audio Device' to: your_soundcard_IEC958 and 'Passthrough Device' to the same. Setting both simply to IEC958 works for me.
- Geting dig. au. out via HDMI seems to be difficult too. I do not own hdmi hardware so I heve no personal experience w/ that. But it seems to me that drivers for the hdmi part of video cards are still in active development and that it depends on Alsa supporting it. A separate sticky How To about hdmi and dig. au out may be necessary.
- Some times stereo passtru seems to work out of the box at first but DD or DTS won't. Then do the remove PA thing.
- About testing if your cables are connected- and drivers are set up correctly. I usally take a simple AVI movie w/ AC3 sound and determine if my receiver decodes the dig. audio stream. I use the following command:
mplayer -afm hwac3 movie_with_ac3_audio.AVI
- About 44.1 kHz DTS streams: http://forum.xbmc.org/showthread.php?tid=83929. Audio cards that upsample from 44.1 kHz to 48 kHz:
- Creative SoundBlaster Live
- Creative Audigy
- Creative X-Fi
P.S. About that X-Fi: I read here that it's supported in Alsa 1.0.21 and up. For instance: Ubuntu 10.04 has an alsa version higher than 1.0.21. See Distrowatch.
Cards/chips that do not upsample (= good):
- Trust 511 (chip: C-Media CMI8738)
- The s/pdif dig. out from some audio chips used on motherboards. Example: Asus P4C800 (Intel 875P chipset for processor; dunno 'bout the audio chip)
- Summary of 44.1 kHz DTS passtru fix/workaround: create a file called /home/my_name/.xbmc/advancedsettings.xml and put the following text in it:
3. For XBMC Live users
(pass tru doesn't seem to work as of yet... ) WIP (work in progress). What I tried so far:
- Start Live CD > press 'S' > Exit XBMC > log in into Linux w/ username=xbmc and password=xbmc > type: "startx" to start Fluxbox.
- Right mouse button > Terminal > alsamixer.
- In alsamixer seek for 'IEC958' and activate it w/ the 'M' key if not already activated.
- Start xbmc from vthe terminal by typing in: "xbmc". One may switch to full screen w/ the slash (\) key.
- In the audio settings screen one may fiddle around w/ settings. But no matter what I try I always get an alsa lib error on the command line after exiting XBMC.
- Maybe xbmc and alsa expect some sort of special lingo to be talked to them in the "custom" device setting? Like: "hw:0,2".  Nope! That last one works in my regular xbmc setup (Ubuntu + xbmc) but not in Live. This is getting "pulling my hair out" cazy! It just won't work in xbmc live. I give up for now (19-11-2010).
P.S. Maybe a moderator can make this sticky if it proves to be useful.