diff --git a/NEWS b/NEWS index 153cbd837..aa74e95dc 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,7 @@ ver 0.15 - (200?/??/??) - parse RVA2 tags in mp3 files * decoders: - audiofile: streaming support added + - audiofile: added 24 bit support - modplug: another MOD plugin, based on libmodplug - mikmod disabled by default, due to severe security issues in libmikmod - sidplay: new decoder plugin for C64 SID (using libsidplay2) diff --git a/src/decoder/audiofile_plugin.c b/src/decoder/audiofile_plugin.c index bc517d49c..e1e848c05 100644 --- a/src/decoder/audiofile_plugin.c +++ b/src/decoder/audiofile_plugin.c @@ -127,8 +127,15 @@ audiofile_stream_decode(struct decoder *decoder, struct input_stream *is) return; } + afGetSampleFormat(af_fp, AF_DEFAULT_TRACK, &fs, &bits); + if (!audio_valid_sample_format(bits)) { + g_debug("input file has %d bit samples, converting to 16", + bits); + bits = 16; + } + afSetVirtualSampleFormat(af_fp, AF_DEFAULT_TRACK, - AF_SAMPFMT_TWOSCOMP, 16); + AF_SAMPFMT_TWOSCOMP, bits); afGetVirtualSampleFormat(af_fp, AF_DEFAULT_TRACK, &fs, &bits); audio_format.bits = (uint8_t)bits; audio_format.sample_rate =