I've been looking for a way to grab a frame from a video currently in the hardware overlay, and I've not found anything solid. Everything I find is either for grabbing frames from a video you are playing (in your app) or creating a filter to which I can't find a good example on how I would actually grab the frames in my app (or can the app be an in-memory filter that doesn't need to be "installed" and chosen in player?).
So, my question is how would I go about doing this? I know it's possible with a filter, I've seen it done, I just haven't seen how it's done. Is there a good example somewhere of how to grab frames in a filter and send them to my app? Or is there a way like, hook into some procedure call and get the frame from there somehow?
I've seen hooking done for DirectX to get all the DirectX info, but, hardware overlays are not DirectX, are they? Or can I just hook into DirectX and grab the front buffer from there or something?
I've been searching for resources on this issue but I keep going around in circles and the fact that there are people who want to put the overlays on DirectX surfaces doesn't help, a lot of the results are on that topic.
If it's relevant, I would prefer a solution in C++ (the app I have is in C++ and currently uses the "regular" way of grabbing screenshots from screen, which ofcourse leaves black rectangles for the hardware overlay).