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/7052>
This commit is contained in:
He Junyan 2024-06-18 05:53:19 +08:00 committed by Backport Bot
parent fe2525f9d3
commit aa5092dabf

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;
}
}
}