Index: libs/libmyth/audiooutputalsa.cpp
===================================================================
--- libs/libmyth/audiooutputalsa.cpp	(Revision 9580)
+++ libs/libmyth/audiooutputalsa.cpp	(Arbeitskopie)
@@ -46,8 +46,17 @@
     numbadioctls = 0;
 
     QString real_device = audiodevice;
-    if (audio_passthru)
-        real_device.append(":{ AES0 0x02 }");
+
+   //proper ac3 pass thru setup. (taken from mplayer)
+    if (audio_passthru) {
+      real_device.sprintf("iec958:{CARD 0 AES0 0x%02x AES1 0x%02x AES2 0x%02x AES3 0x%02x}", 
+          IEC958_AES0_NONAUDIO | IEC958_AES0_CON_EMPHASIS_NONE, 
+          IEC958_AES1_CON_ORIGINAL | IEC958_AES1_CON_PCM_CODER, 
+          0,
+          IEC958_AES3_CON_FS_48000);
+      VERBOSE(VB_AUDIO, QString("Opening audio for AC3 PassThru with %1").arg(real_device));
+    }
+
     
     err = snd_pcm_open(&pcm_handle, real_device,
           SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK); 
