To Jaro
The decoder is synchronous, the source isn't. The glitches are not because of additional thread. WMP12 also has a thread (pipeline), that starves when some heavy program loads. Almost all media stutters in that case. Simply, my media source outputs very tiny samples (exactly one FLAC frame), that can be as small as 40ms, so there is almost no buffered media, and WMP12 sample pull is not smart enough to compensate for that. But I don't consider it as a problem, because a computer is almost never under heavy load.
It was made in VS2010 of course. The latest official sources were used. No assembly optimization, though, because it doesn't work for x64. The optimization is not needed, because the codec is very fast, the CPU load is always zero.
The media source could be implemented synchronously, but it would not eliminate stuttering (only larger samples will). The reason is that I'm only warming up - my main goal is MF source for Matroska, which, of course, must be asynchronous!