[mythtv] PowerPC

Nigel Pearson nigel at ind.tansu.com.au
Mon Dec 13 22:03:31 UTC 2004


> The symptom I saw using a PPC Linux frontend to a x86 Linux
> backend was the audio sounded like static.  The video worked.

	Thanks for that additional information, Taoyama-san.
Working video means that your frontend was compiled with
-DWORDS_BIGENDIAN


	If it still has static for audio after a recompile,
could I trouble you to try these changes:


% diff -u audiooutputalsa.cpp.orig audiooutputalsa.cpp
--- audiooutputalsa.cpp.orig    Tue Dec 14 08:59:34 2004
+++ audiooutputalsa.cpp Tue Dec 14 08:37:02 2004
@@ -65,9 +65,17 @@
      else if (audio_bits == 16)
          // is the sound data coming in really little-endian or is it
          // CPU-endian?
+#ifdef WORDS_BIGENDIAN
+        format = SND_PCM_FORMAT_S16_BE;
+#else
          format = SND_PCM_FORMAT_S16_LE;
+#endif
      else if (audio_bits == 24)
+#ifdef WORDS_BIGENDIAN
+        format = SND_PCM_FORMAT_S24_BE;
+#else
          format = SND_PCM_FORMAT_S24_LE;
+#endif
      else
      {
          Error(QString("Unknown sample format: %1 
bits.").arg(audio_bits));
% diff -u audiooutputoss.cpp.orig audiooutputoss.cpp--- 
audiooutputoss.cpp.orig     Tue Dec 14 08:59:57 2004
+++ audiooutputoss.cpp  Tue Dec 14 08:50:04 2004
@@ -77,12 +77,30 @@
      SetFragSize();

      bool err = false;
+    int  format;
+
+    switch (audio_bits)
+    {
+        case 8:
+            format = AFMT_S8;
+            break;
+        case 16:
+#ifdef WORDS_BIGENDIAN
+            format = AFMT_S16_BE;
+#else
+            format = AFMT_S16_LE;
+#endif
+            break;
+        default: Error(QString("AudioOutputOSS() - Illegal bitsize of 
%1")
+                       .arg(audio_bits));
+    }

      if (audio_channels > 2)
      {
          if (ioctl(audiofd, SNDCTL_DSP_SAMPLESIZE, &audio_bits) < 0 ||
              ioctl(audiofd, SNDCTL_DSP_CHANNELS, &audio_channels) < 0 ||
-            ioctl(audiofd, SNDCTL_DSP_SPEED, &audio_samplerate) < 0)
+            ioctl(audiofd, SNDCTL_DSP_SPEED, &audio_samplerate) < 0 ||
+            ioctl(audiofd, SNDCTL_DSP_SETFMT, &format) < 0)
              err = true;
      }
      else
@@ -90,7 +108,8 @@
          int stereo = audio_channels - 1;
          if (ioctl(audiofd, SNDCTL_DSP_SAMPLESIZE, &audio_bits) < 0 ||
              ioctl(audiofd, SNDCTL_DSP_STEREO, &stereo) < 0 ||
-            ioctl(audiofd, SNDCTL_DSP_SPEED, &audio_samplerate) < 0)
+            ioctl(audiofd, SNDCTL_DSP_SPEED, &audio_samplerate) < 0 ||
+            ioctl(audiofd, SNDCTL_DSP_SETFMT, &format) < 0)
              err = true;
      }

%

--
Nigel Pearson, nigel at ind.tansu.com.au | "Peacemaking is our profession"
Telstra BI&D, Sydney, Australia       | Motto of Burpelson Airforce Base
Office: 8255 4222    Fax:  8255 3153  | Commanded by Gen. Jack D. Ripper
Mobile: 0408 664435  Home: 9792 6998  |        Dr Strangelove



More information about the mythtv-dev mailing list