From ee9c60fad46c1da7c517b84e37a9c4bc41949efd Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 28 Feb 2011 00:00:41 +0100 Subject: output/oss: AFMT_S24_PACKED is little-endian According to the Solaris dsp manpage, AFMT_S24_PACKED is little-endian: http://download.oracle.com/docs/cd/E19963-01/821-1475/6nmf5baot/index.html The Minix soundcard.h header says the same. --- src/output/oss_plugin.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/output') diff --git a/src/output/oss_plugin.c b/src/output/oss_plugin.c index f5ae80e8c..26d674e33 100644 --- a/src/output/oss_plugin.c +++ b/src/output/oss_plugin.c @@ -461,6 +461,12 @@ oss_setup_sample_format(int fd, struct audio_format *audio_format, break; audio_format->format = mpd_format; + +#ifdef AFMT_S24_PACKED + if (oss_format == AFMT_S24_PACKED) + audio_format->reverse_endian = + G_BYTE_ORDER != G_LITTLE_ENDIAN; +#endif return true; case ERROR: @@ -502,6 +508,12 @@ oss_setup_sample_format(int fd, struct audio_format *audio_format, break; audio_format->format = mpd_format; + +#ifdef AFMT_S24_PACKED + if (oss_format == AFMT_S24_PACKED) + audio_format->reverse_endian = + G_BYTE_ORDER != G_LITTLE_ENDIAN; +#endif return true; case ERROR: -- cgit v1.2.3