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.
This commit is contained in:
Max Kellermann 2011-02-28 00:00:41 +01:00
parent e257484870
commit ee9c60fad4
2 changed files with 13 additions and 0 deletions

1
NEWS
View File

@ -4,6 +4,7 @@ ver 0.16.2 (2011/??/??)
- gme: detect end of song - gme: detect end of song
* output: * output:
- httpd: fix uninitialized variable - httpd: fix uninitialized variable
- oss: AFMT_S24_PACKED is little-endian
ver 0.16.1 (2011/01/09) ver 0.16.1 (2011/01/09)

View File

@ -461,6 +461,12 @@ oss_setup_sample_format(int fd, struct audio_format *audio_format,
break; break;
audio_format->format = mpd_format; 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; return true;
case ERROR: case ERROR:
@ -502,6 +508,12 @@ oss_setup_sample_format(int fd, struct audio_format *audio_format,
break; break;
audio_format->format = mpd_format; 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; return true;
case ERROR: case ERROR: