Select video decoder implementations for MojoVideoDecoder
This CL enables the following: - SupportedVideoDecoderConfigs are now returned from the GPU process as a map [video decoder implementation] => vector of SupportedVideoDecoderConfig for that implementation. - GpuVideoAcceleratorFactories::IsDecoderConfigSupported takes the implementation enum value as an additional argument, and checks only against that implementation's supported configs. - MojoVideoDecoder accepts an implementation enum during construction, which will be provided to the service during decoder initialization. - GpuMojoMediaClient uses the kAlternate implementation enum value to select D3D11VideoDecoder on Windows, if the experiment is currently enabled. It no longer uses FallbackVideoDecoder. - MojoDecoderFactory adds a kAlternate decoder, in addition to the kDefault decoder, on Windows if the experiment is enabled. - RTCVideoDecoderAdapter always selects the default video decoder implementation. This causes RTC on windows to use only DXVA, rather than D3D11VideoDecoder. This will be addressed as follow- up work, though likely not immediately. The main reason for this is that it lets the renderer's decoder selection algorithm see two MojoVideoDecoder instances: one for DXVA and one for D3D11VideoDecoder. This lets decoder selection and fallback happen normally for them, rather than having the fallback happen in the GPU process via FallbackVideoDecoder. Bug: 954422 Change-Id: If6f056723c11ff50327623ac8d554d9f5da9f499 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1534984Reviewed-by:Daniel Cheng <dcheng@chromium.org> Reviewed-by:
Xing Liu <xingliu@chromium.org> Reviewed-by:
Dan Sanders <sandersd@chromium.org> Commit-Queue: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/heads/master@{#652479}
Showing
Please register or sign in to comment