KB5124010 > Microsoft AC-3 decoder regression > Microsoft officially confirmed > no Microsoft fix yet.
The WsMMPlay.exe crash is a known Windows 11 KB5124010 issue acknowledged by Microsoft:
Microsoft's KB5124010 known-issues page Look under "Applications which require AC-3 audio decoding might close unexpectedly"
There is also a useful clarification about which PCs are vulnerable: Microsoft documents that AC-3 was included before Windows 11 24H2 but removed from clean 24H2 installations; upgraded machines retain it. That explains why the bug can appear on upgraded 24H2/25H2 systems while an apparently identical clean installation doesn't reproduce it.
For those who want to know more:The irony is that WsMMPlay.exe does not even use the AC-3 decoder to decode the MP3 voices/files (actually the player does no decoding at all, it simply issues a Multimedia "Play" Command with the actual MP3 sound file and lets Windows handle the rest).
Anyway, the crash happens before the actual decoding, while DirectShow is trying to build the playback graph.
DirectShow’s IGraphBuilder::RenderFile uses something called Intelligent Connect. Rather than the application explicitly saying "this is MP3, use decoder X," DirectShow looks at the source/filter outputs and tries candidate filters that might connect. That means it can instantiate filters that ultimately won’t be part of the final graph.
So, simplified, the sequence is roughly:
1. WsMMPlay.exe asks DirectShow to render an MP3 file.
2. DirectShow identifies the source stream and starts looking for filters that might accept it.
3. During that search, Windows considers the built-in Microsoft DSHOW AC-3 Decoder implemented in msmpeg2ac3dec.dll.
4. DirectShow instantiates that AC-3 decoder to ask, essentially, “can you connect to this stream?”
5. It eventually determines that it isn't the appropriate decoder for the MP3 and moves on.
6. The proper MPEG/MP3 decoder gets selected and actually performs playback.
Normally, step 4 is harmless. A filter being instantiated and rejected is routine DirectShow behaviour.
The September 22 optional preview update appears to have broken something inside the new msmpeg2ac3dec.dll, however. In the affected applications, creating/probing that decoder more than once in the process can trigger the fail-fast 0xC0000602 crash.
So the irony is:
The AC-3 decoder crashes the application even though it was never going to decode the MP3.
It is effectively dying during DirectShow's filter-discovery / graph-negotiation process, not during actual audio decoding.
###
This should give you a glimpse into why the Winstep application uses a separate applet to play MP3 audio instead of playing the audio itself.
This actually came about many years ago, after weeks - possibly even months, I don't remember now - of frustrating debugging finally led me to the conclusion that the reason the Winstep application was unstable on some systems but not others had, once again, absolutely nothing to do with Winstep itself.
The culprit was buggy third-party codec filters installed by codec packs such as K-Lite.
Worse, unlike what is happening now, the faulty codec did not crash the application immediately. Instead, it could corrupt the application's state in ways that later caused serious side effects seemingly completely unrelated to audio playback, making the actual cause extremely difficult to track down.
And, of course, as usual when a third-party DLL loaded inside the Winstep process craps out, it is the Winstep application itself that gets the blame.
The solution was to isolate audio playback in a separate process. If a buggy codec or Windows multimedia component crashes or corrupts that process, WsMMPlay.exe dies - not the main Winstep application. It can simply be restarted the next time audio needs to be played.