Hey Silverbahamut, James!
The truth is I was half way through writing the code before I even realized that Media Foundation was the new way to handle this stuff. : )
In terms of the CPU/GPU stuff, my original goal was to get something fairly uncomplicated working first.
The current way the player is working is that we tell it that our grabber requires RGB_24 pixels. DirectShow handles that conversion internally, so it might be hardware optimized. But then when we get the buffer back, we have to flip the bytes ( it returns BGR ) and flip the video vertically, so that adds a little overhead.
However even with this approach decoding, on a 1080p video its is a LOT faster than the current implementation.
Thanks for posting the Media Foundation stuff, it looks very familiar, much like DS but less nasty!
I’m going to check it out. DirectShow is one of my less favorite APIs, so it can’t be worse!
@bilderbuchi I think there is a working Gstreamer on Windows, the issue is it is quite a large library and adds a lot of bloat to an app. Whats nice with my approach is its just two classes and no additional libraries being added to the linker.