From 0d9d82a932d7fc022bfc410e206fb8edb6f3db03 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 24 Dec 2008 03:08:39 +0100 Subject: pcm_utils: check pcm_convert()==0 It is illegal to pass an empty audio buffer around. pcm_resample() sometimes seems to result in 0 samples, maybe related to libsamplerate. To work around that problem, add special checks after both pcm_convert() invocations. Removed the pcm_resample()==0 checks from pcm_convert(). --- src/decoder_api.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/decoder_api.c') diff --git a/src/decoder_api.c b/src/decoder_api.c index bf389222b..dd7096017 100644 --- a/src/decoder_api.c +++ b/src/decoder_api.c @@ -249,6 +249,13 @@ decoder_data(struct decoder *decoder, length = pcm_convert(&dc.in_audio_format, _data, length, &dc.out_audio_format, data, &decoder->conv_state); + + /* under certain circumstances, pcm_convert() may + return an empty buffer - this condition should be + investigated further, but for now, do this check as + a workaround: */ + if (length == 0) + return DECODE_COMMAND_NONE; } if (replay_gain_info != NULL && (replay_gain_mode != REPLAY_GAIN_OFF)) -- cgit v1.2.3