https://bugs.winehq.org/show_bug.cgi?id=38765
--- Comment #6 from Jason jasonwinter@hotmail.com --- Hi Nikolay,
It's actually non-trivial to set something like this up for a test case.
This link explains the VMR9 (and 7) differences from the normal renderer:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd407299%28v=vs.85%...
(Note the comment: when the VMR is in windowless mode, it does not even expose the IVideoWindow interface, which is no longer needed. I'm not sure Wine hides the interface, as it should. This may be important, since many programs that work with different renderers run through a list of interfaces to set various things, so obtaining this interface when it's in the wrong mode may cause [more] unexpected things to happen.)
There is also a VMR9 Windowless sample in the Direct Show area of the Windows SDK:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd390982%28v=vs.85%...
When I was coding with this stuff (10 years ago now) I used a few audioless .mpg files (you've got to have something to show in the video window) and as few filter objects as I could (trying to use the auto connect feature of quartz to find what's needed in the graph to show the video).
I do remember using that sample though, it helped a lot.
As for tests, I would use a timer to trigger the API calls I've pointed out (so it can all be done without focus) so you can tell what Windows and Wine do differently in this case.
I'd also search the Wine codebase (as I did, as well as my own) so you can see just how many places use SWP_NOZORDER and SWP_NOACTIVATE together. I was surprised that most of my own code and much of Wine uses the flags together, except in vmr9.c where I'm getting so many problems.
Best regards, Jason.