could we use sample allocator unconditionally? In other words, is it possible to get SVR used when no device manager was provided;
For 'Frame Server Mode', the documentation states `MF_MEDIA_ENGINE_DXGI_MANAGER` is optional:
https://learn.microsoft.com/en-us/windows/win32/api/mfmediaengine/nf-mfmedia...
And the documentation for `MF_MEDIA_ENGINE_DXGI_MANAGER` says:
In frame-server mode, this attribute enables the Media Engine to use hardware acceleration for video decoding and video processing. If the attribute is not set, the Media Engine uses software decoding and processing.
So technically we should add support for not providing `MF_MEDIA_ENGINE_DXGI_MANAGER`. But we don't currently support that, and the purpose of this MR is just to replace the sample grabber. Maybe this can be the target of a future MR?
EVR has a circular buffer logic, so maybe we could copy from there;
Do you mean the `IID_IMFVideoSampleAllocator` interface in the `MR_VIDEO_ACCELERATION_SERVICE`? If so, I think this would only be used once we support optionally providing a DXGI manager. As when DXGI manager is supplied the MFTs provide their own samples (so the sample allocator isn't used).
it would be great if we could get rid of locking sample buffer for copies, and that should be possible if we always have d3d samples.
@rbernon implemented this in Proton, so I've cherry-picked his commit. Although I did also add one more commit that will fallback to the existing sample lock/copy if scaling in required.