summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst-libs/gst/codecparsers/gstav1parser.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gst-libs/gst/codecparsers/gstav1parser.c b/gst-libs/gst/codecparsers/gstav1parser.c
index c2695e94f..7e4b8614b 100644
--- a/gst-libs/gst/codecparsers/gstav1parser.c
+++ b/gst-libs/gst/codecparsers/gstav1parser.c
@@ -824,12 +824,16 @@ gst_av1_parser_identify_one_obu (GstAV1Parser * parser, const guint8 * data,
GST_LOG ("identify obu type is %d", obu->obu_type);
if (obu->header.obu_has_size_field) {
+ guint size_sz = gst_bit_reader_get_pos (&br) / 8;
+
obu->obu_size = av1_bitstreamfn_leb128 (&br, &ret);
if (ret != GST_AV1_PARSER_OK)
goto error;
+ size_sz = gst_bit_reader_get_pos (&br) / 8 - size_sz;
if (obu_length
- && obu_length - 1 - obu->header.obu_extention_flag != obu->obu_size) {
+ && obu_length - 1 - obu->header.obu_extention_flag - size_sz !=
+ obu->obu_size) {
/* If obu_size and obu_length are both present, but inconsistent,
then the packed bitstream is deemed invalid. */
ret = GST_AV1_PARSER_BITSTREAM_ERROR;