Commit 62000670 authored by Nils Schneider's avatar Nils Schneider Committed by Max Kellermann

Support S24_P32/S32/FLOAT sample formats on Pulse

This is based on a patch from Ian Scott in 2014. It was never committed, so I figured I'd fix the outstanding issue and resubmit it. https://www.mail-archive.com/mpd-devel%40musicpd.org/msg00139.html
parent ac49043f
ver 0.19.19 (not yet released)
* output
- pulse: support 32 bit, 24 bit and floating point playback
ver 0.19.18 (2016/08/05)
* decoder
......
......@@ -574,12 +574,30 @@ pulse_output_open(AudioOutput *ao, AudioFormat &audio_format,
return false;
}
/* MPD doesn't support the other pulseaudio sample formats, so
we just force MPD to send us everything as 16 bit */
audio_format.format = SampleFormat::S16;
/* Use the sample formats that our version of PulseAudio and MPD
have in common, otherwise force MPD to send 16 bit */
pa_sample_spec ss;
ss.format = PA_SAMPLE_S16NE;
switch (audio_format.format) {
case SampleFormat::FLOAT:
ss.format = PA_SAMPLE_FLOAT32NE;
break;
case SampleFormat::S32:
ss.format = PA_SAMPLE_S32NE;
break;
case SampleFormat::S24_P32:
ss.format = PA_SAMPLE_S24_32NE;
break;
case SampleFormat::S16:
ss.format = PA_SAMPLE_S16NE;
break;
default:
audio_format.format = SampleFormat::S16;
ss.format = PA_SAMPLE_S16NE;
break;
}
ss.rate = audio_format.sample_rate;
ss.channels = audio_format.channels;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment