libsdl-org / SDL_mixer

An audio mixer that supports various file formats for Simple Directmedia Layer.
zlib License
433 stars 146 forks source link

playback issues after commit b1fc474a780 #402

Closed sezero closed 2 years ago

sezero commented 2 years ago

Issues running playmus -l some.file after commit b1fc474a780 :

A wav file plays and loops fine, but a mp3-converted version of it quits after first round: Happens with mpg123 and drmp3, and with all mp3 files I tried. Ogg behaves the same (tested only with stb_vorbis backend, did not bother trying libvorbis.)

With the libmad backend, things are very broken: playback unexpectedly quits after 1.2 to 2.7 seconds: tested several mp3 files, always happens, and if I revert commit b1fc474a780 then it plays and loops normally.

CC: @slouken.

slouken commented 2 years ago

What happens if you increase the zero_cycles check greater than 1? 2? 3?

sezero commented 2 years ago

Hmm, upon changing it to if (zero_cycles > 2), mpg123 backend seems to loop fine: Went into 4th loop where I manually quit it.

With libmad backend, the weird early quit is gone but it only plays the file once. Only after increasing it to 4, it managed to loop.

Haven't tried ogg or others.

slouken commented 2 years ago

Okay, I'll bump it up to 10. We're really just trying to catch infinite loops here, if there are legitimate reasons for various decoders to cycle several times without output, that's fine.

sezero commented 2 years ago

Okay, I'll bump it up to 10.

Ouch..

We're really just trying to catch infinite loops here

Yeah,

, if there are legitimate reasons for various decoders to cycle several times without output, that's fine.

Make sure that we play nice with ogg containers' section changes and its likes.