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().
This commit is contained in:
Max Kellermann
2008-12-24 03:08:39 +01:00
parent d2d11d70a8
commit 0d9d82a932
3 changed files with 16 additions and 5 deletions

View File

@@ -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))