commit dde9b2c1bf6184d7d525ebbf52485549f31196ba
Author: Roman Fomin <rfomin@gmail.com>
AuthorDate: Thu Dec 29 20:51:21 2022 +0700
Commit: GitHub <noreply@github.com>
CommitDate: Thu Dec 29 14:51:21 2022 +0100
win midi: Prevent rare `midiOutUnprepareHeader()` fail (#1564)
Fix by ceski.
---
src/i_winmusic.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/i_winmusic.c b/src/i_winmusic.c
index 8eb10838..a9df6247 100644
--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -1460,6 +1460,10 @@ static void I_WIN_ShutdownMusic(void)
if (buffer.data)
{
+ // Windows doesn't always immediately clear the MHDR_INQUEUE flag, even
+ // after midiStreamStop() is called. There doesn't seem to be any side
+ // effect to just forcing the flag off.
+ MidiStreamHdr.dwFlags &= ~MHDR_INQUEUE;
mmr = midiOutUnprepareHeader((HMIDIOUT)hMidiStream, &MidiStreamHdr,
sizeof(MIDIHDR));
if (mmr != MMSYSERR_NOERROR)