media/gpu: Support VP9 k-SVC decoding with HW decoder on chromeos intel platform

This CL enables VP9 k-SVC decoding with HW decoder on chromeos intel platform.
The feature is currently disabled by default and can be enabled by
--enable-features=Vp9kSVCHWDecoding. Webrtc stack sends hw decoder one SVC frame
that is composed of multiple frames without superframe index. So that HW decoder
can detect each frame, webrtc attach the data size info of each frame in
webrtc::EncodedImage. We propagate the info to HW decoder by storing it as
side_data in media::DecoderBuffer. Vp9Parser knows the width and height of all
frame embedded in one SVC frame before feeding them and notify the largest width
and height to HW decoder.

Design doc for this change is go/VP9-k-SVC-Decoing-VAAPI.

Bug: chromium:935411
Test: Hangout Meet with VP9 SVC stream
Change-Id: I40eb25f73a97b25b6131b1d969f27618d7bd0ee9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1640739
Reviewed-by: Kuang-che Wu <kcwu@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#679213}
10 files changed