Chrome assumes VP9 profile 0 is always supported if VP9 is supported. This seems reasonable. However, for other profiles, specific levels, and other values in the codec string ( issue 667834 ), we should check whether they are supported.
For software decoding, we can base this on the included libvpx. (It would be nice if we could query it so we don't have to maintain this manually.) However, when hardware decoding is available, we need to query the platform.
An alternative solution would be to fall back to Chrome's software decoder if hardware decoding fails, but that would not work for encrypted media on Android or the Media Capabilities API, which exposes information that may depend on whether a hardware decoder is used.
This issue mostly tracks the media/ work and ensuring that Chrome/Chromium does the right thing. However, we also need to enable other embedders to do the right thing and ensure they do since the changes in media/ could change their behavior.
Comment 1 by ddorwin@chromium.org
, Dec 8 2016