[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