Add support for DX11 based H/W video decoding on Windows 8+
This is only available on Windows 8+ because the media foundation API which exposes the device
manager to be pased to the decoder MFCreateDXGIDeviceManager only exists on Windows 8+.
Changes in this patch are mostly around using DX11 or D3D wherever needed. These are as below:-
1. In the initialization code path where we use D3D or DX11 based on whether we are on Windows 8+
and ANGLE and the decoder say they support DX11.
2. The output frame processing code where we extract the DX11 texture and copy it out to ANGLE. One change
here is that DX11 does not provide an automatic way for format conversion for textures. The decoder outputs
YUV12 textures and ANGLE expects RGB. We can achieve this by setting a shader for conversion. That seemed
like too much work. Thankfully there is a video processor media foundation transform on Windows which
does the conversion for us on the GPU. We use this object to convert the output frame and copy it out to
ANGLE.
3. We pass the GL context to the decoder to enable us to query ANGLE to see if it is using D3D or DX11.
BUG=456418
Review URL: https://codereview.chromium.org/
922003002
Cr-Commit-Position: refs/heads/master@{#318560}