diff options
author | Max Kellermann <max@duempel.org> | 2011-02-28 00:09:45 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2011-02-28 00:09:45 +0100 |
commit | a1d1c2beaa54f76bbf92b2a5fd83c4a582a0316b (patch) | |
tree | 578e387c4d64cc65ad5bb341981a8fe13b04f0f0 | |
parent | ee9c60fad46c1da7c517b84e37a9c4bc41949efd (diff) |
output/oss: disable 24 bit playback on FreeBSD
See code comment.
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/output/oss_plugin.c | 9 |
2 files changed, 10 insertions, 0 deletions
@@ -5,6 +5,7 @@ ver 0.16.2 (2011/??/??) * output: - httpd: fix uninitialized variable - oss: AFMT_S24_PACKED is little-endian + - oss: disable 24 bit playback on FreeBSD ver 0.16.1 (2011/01/09) diff --git a/src/output/oss_plugin.c b/src/output/oss_plugin.c index 26d674e33..9261b423c 100644 --- a/src/output/oss_plugin.c +++ b/src/output/oss_plugin.c @@ -41,6 +41,15 @@ # include <sys/soundcard.h> #endif /* !(defined(__OpenBSD__) || defined(__NetBSD__) */ +/* We got bug reports from FreeBSD users who said that the two 24 bit + formats generate white noise on FreeBSD, but 32 bit works. This is + a workaround until we know what exactly is expected by the kernel + audio drivers. */ +#ifndef __linux__ +#undef AFMT_S24_PACKED +#undef AFMT_S24_NE +#endif + struct oss_data { int fd; const char *device; |