decoder/plugins/PcmDecoderPlugin: introduce new internal mime type "audio/x-mpd-alsa-pcm"

This mime type is to enable the AlsaInputPlugin to communicate the pcm stream audio format to the decoder
This commit is contained in:
borine 2019-03-06 08:39:47 +00:00
parent 38f0c16904
commit 945ea51bd4

View File

@ -28,6 +28,7 @@
#include "util/StaticFifoBuffer.hxx"
#include "util/NumberParser.hxx"
#include "util/MimeType.hxx"
#include "AudioParser.hxx"
#include "Log.hxx"
#include <exception>
@ -133,6 +134,20 @@ pcm_stream_decode(DecoderClient &client, InputStream &is)
audio_format.channels = value;
}
if (GetMimeTypeBase(mime) == "audio/x-mpd-alsa-pcm") {
i = mime_parameters.find("format");
if (i != mime_parameters.end()) {
const char *s = i->second.c_str();
audio_format = ParseAudioFormat(s, false);
if (!audio_format.IsFullyDefined()) {
FormatWarning(pcm_decoder_domain,
"Invalid audio format specification: %s",
mime);
return;
}
}
}
}
if (audio_format.sample_rate == 0) {
@ -221,6 +236,9 @@ static const char *const pcm_mime_types[] = {
/* same as above, but with reverse byte order */
"audio/x-mpd-cdda-pcm-reverse",
/* for streams obtained by the alsa input plugin */
"audio/x-mpd-alsa-pcm",
nullptr
};