when using the Windows Enhanced Video Renderer (EVR) with no custom presenter, setting the source rectangle with the IMFVideoDisplayControl::SetVideoPosition method does not work as expected when running on Windows 7, 8 and crashes the driver on Windows 10 with Intel HD Graphics 530, but runs fine when using any of the HD Graphics 4000 up to 4600 (Windows 7, 8, 10). Using latest drivers for testing.
Steps to reproduce: The Microsoft BasicPlayback Sample can be used as a base (available in Windows SDK). Add code to handle a mouse click during playback and run the IMFVideoDisplayControl::SetVideoPosition function using a MFVideoNormalizedRect structure with values 0.1f, 0.1f, 0.9f, 0.9f for left, top, right and bottom. While this has the desired effect when using Intel HD Graphics up to 4600, it will behave strange (buggy) on Intel HD Graphics 530 - the bottom right corner will not be updated (tested for 1920 x 1080 video). Even worse: On Windows 10 you will get a "Intel HD Graphics driver stopped responding" message if you try several times.
Unfortunately this breaks every EVR based app which uses IMFVideoDisplayControl::SetVideoPosition for digital zooming (and moving) the video.
I can provide the updated sample application if necessary to reproduce the issue.
Any thoughts on this? Any workaround?
Have a nice day.
as the aforementioned sample is apparently not part of the Windows SDK any more I have created a small app using Media Foundation and EVR based on this sample. I am attaching a VS 2010 solution to reproduce this issue easily.
Steps to reproduce:
1. Run the application from the Release folder (or build it by yourself).
2. Click File - Open File, select All files and find a video file. I have used Full HD AVI files mostly.
3. During playback click in the video. The IMFVideoDisplayControl::SetVideoPosition will be called to update the normalized source rectangle to the values 0.1f, 0.1f, 0.9f, 0.9f for left, top, right and bottom.
4. When using HD Graphics 4000 - 4600 on WIndows 7,8 or 10, this will have the desired effect - zooming into the video. But when using HD Graphics 530 (Windows 7 or 😎 you will see the issue - the bottom right corner will not be updated. Moreover, when running on Windows 10 you will see the OS crashing and reporting a problem in the video driver.
As this really breaks all EVR based apps using this function, I hope that a solution can be found soon.
yes, I know, it's Christmas time, but since this issue is definitely a blocking one, could you please let me know, if you were able to reproduce it on your side? Any chances for a fix or workaround?
Thank you very much.
Alex, something I hit that may or may not be related, our app was no longer resizing correctly (EVR based renderer) and modifying the Image Scaling video setting in the HD Graphics Control Panel fixed that issue (from disabled to enabled). Sounds similar.
thank you very much for your input, indeed, turning Image Scaling on is a nice wourkaround for the EVR renderer to work correctly again, this helped us a lot for the moment.
I hope, however, that this problem is going to be fixed soon, because (with Image Scaling turned off) the Windows API of the EVR renderer mentioned above is broken and leads to driver / OS crash on Win 10.
Have a nice day.
Hi Alex and Steve,
The imaging scaling workaround is good information I have passed it along.
And yes Alex, since with imaging scaling off we see a crash with Win 10 we still need ti investigate and find a fix.
glad to hear you were able to reproduce. Please note that the Win 10 crash is just the most obvious problem. On Win 7 or 8 no crash happens at all, but the aforementioned API is broken as illustrated by our test case (EVR renderer does not work as expected).
Please update this thread when there is a fix available. Thanks.
Have a nice day.
We have been unable to reproduce the issue with the current info provided. We also get an application error message when trying to play an AVI clip. AVC and VC1 are fine. What is the build # of Win 10 that you are using? Do you have a sample clip we can use to help reproduce the issue?
I am a bit confused now, some days ago you said that you see the driver crash, now you are saying that you are not able to reproduce. The problem can be easily reproduced on every Win 7, 8 or 10 maschine with a HD Graphics 530 being the only graphics card in the computer (so that it actually does the rendering).
Nonetheless, I am attaching a sample AVI file that can be used to easily reproduce the problem using exactly the steps I described earlier. The problem happens in step 3 (after a click into the video, i.e. after the sample calls into the IMFVideoDisplayControl::SetVideoPosition function). The file uses an x-vid codec, so if you have any problems to play the file, you might need to install some codecs including x-vid.
Note that Image Scaling must be turned off during the test (as Steve correctly pointed out).
For the Win 10 test, I am currently using Windows 10 Pro 1511 10586.36 (Skylake i7 6700, HD Graphics 530).
We hadn't started debug yet when I posted on Monday. I was merely confirming that yes even with the image scaling workaround since there is a Win 10 crash we need to investigate and fix. The new info provided will hopefully allows us to repro the issue.
We isolated the problem and fixed it in our driver. I believe we got the fix done in time for the next driver release. I don't have an ETA on when that release will be though.