va: vp9dec: update segmentation and store the result.
authorHe Junyan <junyan.he@intel.com>
Thu, 1 Jul 2021 11:27:28 +0000 (19:27 +0800)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 2 Jul 2021 08:44:15 +0000 (08:44 +0000)
commitac51e4192838ccdc8f4a555b784fc2f277031f0c
tree197b2764b081fd00d844ba661ded881e7480fd73
parent17e8fea158b8bb38e5428aecc72a1d7ecff12df7
va: vp9dec: update segmentation and store the result.

The segmentation is stateful, its information may depend on the previous
segmentation setting. For example, if loop_filter_delta_enabled is TRUE,
the filter_level[GST_VP9_REF_FRAME_INTRA][1] should inherit the previous
frame's value and can not be calculated by the current frame's segmentation
data only. So we need to maintain the segmentation state inside the vp9
decoder and update it when the new frame header comes.

We also fix the CLAMP issue of lvl_seg and intra_lvl because of their wrong
uint type here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2369>
sys/va/gstvavp9dec.c