From 6035cd035da63e9b8f0ec301a467796e3ed6917e Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Tue, 2 Jun 2026 17:35:40 -0400
Subject: [PATCH] audiodecoder: AudioDecoders need to seek(0) before starting.
This matches what the mixer does internally, and fixes sample.wav decoding.
Fixes #862.
(cherry picked from commit bd4335307acd198788b861ddca11da5d7d0cbee4)
---
src/SDL_mixer.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/SDL_mixer.c b/src/SDL_mixer.c
index b3a05c7a..86e0a551 100644
--- a/src/SDL_mixer.c
+++ b/src/SDL_mixer.c
@@ -3105,6 +3105,13 @@ MIX_AudioDecoder * MIX_CreateAudioDecoder_IO(SDL_IOStream *io, bool closeio, SDL
return NULL;
}
+ if (!audiodecoder->audio->decoder->seek(audiodecoder->track_userdata, 0)) {
+ audiodecoder->audio->decoder->quit_track(audiodecoder->track_userdata);
+ MIX_DestroyAudio(audiodecoder->audio);
+ SDL_free(audiodecoder);
+ return NULL;
+ }
+
audiodecoder->stream = SDL_CreateAudioStream(&audiodecoder->audio->spec, &audiodecoder->audio->spec);
if (!audiodecoder->stream) {
audiodecoder->audio->decoder->quit_track(audiodecoder->track_userdata);