codecs: gstvp9statefulparser: do not carry over segmentation flags

Do not carry over segmentation flags from previous frames. The spec
says in 7.2.10 that the feature data carry over from previous frames
if not updated, but the flags do not.

Consider what would happen if a flag B is to depend on a flag A, and
B carries over as set from another frame. Further consider that A is
now not set in this particular frame. This leads to the invalid state
in which flag B is set but flag A isn't.

This might cause the bitstream to be rejected by accelerators down
the line.

Fix it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2203>
This commit is contained in:
Daniel Almeida 2021-04-22 19:21:01 -03:00 committed by GStreamer Marge Bot
parent 1039d70d18
commit 4900e3583a

View file

@ -690,6 +690,8 @@ parse_segmentation_params (GstBitReader * br, GstVp9SegmentationParams * params)
params->segmentation_update_map = 0;
params->segmentation_update_data = 0;
params->segmentation_temporal_update = 0;
params->segmentation_abs_or_delta_update = 0;
VP9_READ_BIT (params->segmentation_enabled);
if (!params->segmentation_enabled)