From f7b2c481e6b4c8077116d093c57cd8c03623a787 Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Mon, 24 Mar 2025 16:05:19 -0700 Subject: [PATCH] Bug Fix: Retry MP3 file a few times before failure Give up after 10 tries. Signed-off-by: Christopher Snowhill --- Plugins/minimp3/MP3Decoder.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Plugins/minimp3/MP3Decoder.m b/Plugins/minimp3/MP3Decoder.m index d93d615f4..46f23ebbf 100644 --- a/Plugins/minimp3/MP3Decoder.m +++ b/Plugins/minimp3/MP3Decoder.m @@ -146,7 +146,11 @@ static int mp3_seek_callback(uint64_t position, void *user_data) { _decoder_ex.samples = (totalFrames + _startPadding + _endPadding) * _decoder_ex.info.channels; } mp3d_sample_t *sample_ptr = NULL; - size_t samples = mp3dec_ex_read_frame(&_decoder_ex, &sample_ptr, &_decoder_info, MINIMP3_MAX_SAMPLES_PER_FRAME); + size_t samples = 0; + int retry = 10; + do { + samples = mp3dec_ex_read_frame(&_decoder_ex, &sample_ptr, &_decoder_info, MINIMP3_MAX_SAMPLES_PER_FRAME); + } while(!samples && --retry > 0); if(samples && sample_ptr) { samples_filled = samples / _decoder_info.channels; memcpy(&_decoder_buffer_output[0], sample_ptr, sizeof(mp3d_sample_t) * samples);