aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/openal_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/output/openal_plugin.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/output/openal_plugin.c b/src/output/openal_plugin.c
index 0a8f253b2..e5db8ac34 100644
--- a/src/output/openal_plugin.c
+++ b/src/output/openal_plugin.c
@@ -58,6 +58,10 @@ openal_output_quark(void)
static ALenum
openal_audio_format(struct audio_format *audio_format)
{
+ /* note: cannot map SAMPLE_FORMAT_S8 to AL_FORMAT_STEREO8 or
+ AL_FORMAT_MONO8 since OpenAL expects unsigned 8 bit
+ samples, while MPD uses signed samples */
+
switch (audio_format->format) {
case SAMPLE_FORMAT_S16:
if (audio_format->channels == 2)
@@ -69,16 +73,6 @@ openal_audio_format(struct audio_format *audio_format)
audio_format->channels = 1;
return openal_audio_format(audio_format);
- case SAMPLE_FORMAT_S8:
- if (audio_format->channels == 2)
- return AL_FORMAT_STEREO8;
- if (audio_format->channels == 1)
- return AL_FORMAT_MONO8;
-
- /* fall back to mono */
- audio_format->channels = 1;
- return openal_audio_format(audio_format);
-
default:
/* fall back to 16 bit */
audio_format->format = SAMPLE_FORMAT_S16;