From 3a4a40b658883368c3cdad2650d126b8805bd468 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 27 May 2022 11:25:57 -0700
Subject: [PATCH] Handle music players returning no data
Fixes https://github.com/libsdl-org/SDL_mixer/issues/293
---
src/music.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/music.c b/src/music.c
index 8263128d..05686546 100644
--- a/src/music.c
+++ b/src/music.c
@@ -297,7 +297,7 @@ int music_pcm_getaudio(void *context, void *data, int bytes, int volume,
}
while (len > 0 && !done) {
int consumed = GetSome(context, dst, len, &done);
- if (consumed < 0) {
+ if (consumed <= 0) {
break;
}
@@ -352,7 +352,7 @@ void SDLCALL music_mixer(void *udata, Uint8 *stream, int len)
/* Either an error or finished playing with data left */
music_playing->playing = SDL_FALSE;
}
- if (left > 0) {
+ if (left > 0 && left < len) {
stream += (len - left);
len = left;
} else {