Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/main.c:
if (SUCCEEDED(IUnknown_QueryInterface(surface, &IID_ID3D11Texture2D, (void **)&texture))) {
if (!engine->device_manager || FAILED(hr = media_engine_transfer_d3d11(engine, texture, src_rect, dst_rect, color)))
if (!engine->device_manager
|| engine->video_frame.uses_10bit
|| FAILED(hr = media_engine_transfer_d3d11(engine, texture, src_rect, dst_rect, color))) hr = media_engine_transfer_to_d3d11_texture(engine, texture, src_rect, dst_rect, color); ID3D11Texture2D_Release(texture);
This should be cleaned up a bit now, with possible name change to uses_10bit field that I mentioned. Also existing transfer_to_d3d11 helpers are called too similar to understand what's happening.