av1parse: Do not return error when expectedFrameId mismatch

According to the SPEC:
  The frame id numbers (represented in display_frame_id, current_frame_id,
  and RefFrameId[ i ]) are not needed by the decoding process, but allow
  decoders to spot when frames have been missed and take an appropriate action.

So we should just print out warning and should not return error in parser when
mismatching. The decoder itself is already robust to handle the reference missing.

Fixes #3622

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7047>
This commit is contained in:
He Junyan 2024-06-18 05:53:19 +08:00 committed by GStreamer Marge Bot
parent 7d05af9680
commit 7589647c13

View file

@ -3957,12 +3957,10 @@ gst_av1_parse_uncompressed_frame_header (GstAV1Parser * parser, GstAV1OBU * obu,
if (expected_frame_id !=
parser->state.ref_info.entry[frame_header->
ref_frame_idx[i]].ref_frame_id) {
GST_INFO ("Reference buffer frame ID mismatch, expectedFrameId"
" is %d wihle ref frame id is %d", expected_frame_id,
GST_DEBUG ("Reference buffer frame ID mismatch, expectedFrameId"
" is %d while ref frame id is %d", expected_frame_id,
parser->state.ref_info.entry[frame_header->
ref_frame_idx[i]].ref_frame_id);
retval = GST_AV1_PARSER_BITSTREAM_ERROR;
goto error;
}
}
}