av1decoder: Fix wrong spatial layer validation

Highest spatial id and temporal id is independent, and should not drop
temporal enhance layer by the previous condition. Note that
the decision for dropping OBU based on operation point is being
handled in gst_av1_parser_identify_one_obu() already.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1585
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430>
This commit is contained in:
Seungha Yang 2022-11-18 01:49:43 +09:00 committed by GStreamer Marge Bot
parent 55ca832d70
commit f1a52c5ea0

View file

@ -712,11 +712,11 @@ gst_av1_decoder_handle_frame (GstVideoDecoder * decoder,
goto out;
}
if (priv->current_picture->temporal_id > self->highest_spatial_layer) {
if (priv->current_picture->spatial_id > self->highest_spatial_layer) {
ret = GST_FLOW_ERROR;
GST_VIDEO_DECODER_ERROR (self, 1, STREAM, DECODE,
("current picture temporal_id %d should not be higher than "
"highest spatial layer %d", priv->current_picture->temporal_id,
("current picture spatial_id %d should not be higher than "
"highest spatial layer %d", priv->current_picture->spatial_id,
self->highest_spatial_layer), (NULL), ret);
goto out;
}