Initial commit for MovieSurface. Also broke out the VideoRenderer for DirectShow, so the IPlayer has more control over what kind of renderer it wants to use.
Broke out the EVRCustomPresenter from MediaFoundationPlayer as well.
Restructuring.
Fixed a major issue with reference counting. Because we're using the ScopedComPtr helper class, we need to be careful when transferring ownership of its pointer. Instead of *ptr = (*scopedptr).get() followed by an AddRef(), we should simply call *ptr = scopedptr.Detach(). Also re-organized some more. MovieSurface is 95% there, it just does not connect our SampleGrabber, resulting in an invalid Graph.
Ok, the Graph is now constructed completely and successfully. Next step will be to implement the callback and get the video to actually run.
WIP
Working MovieSurface.