summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorHe Junyan <junyan.he@intel.com>2020-08-14 14:40:49 +0800
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2020-11-17 19:31:09 +0000
commitf20798a1db360945a50c99dcbe043988d10baa05 (patch)
treeaa4d4d1e721c499c6a03bd0c17e1349df0a6576e /gst-libs
parent2c3a33eeab796d4ea605528e26d4c1363695dccb (diff)
downloadgstreamer-plugins-bad-f20798a1db360945a50c99dcbe043988d10baa05.tar.gz
codecparsers: av1: Fix a error report for metadata obu.
The metadata OBUs, for example, ITUT_T35 has an undefined payload such as itu_t_t35_payload_bytes field in AV1 spec, which may cause the failure of parsing the trailings bits. We can give a warning and ignore this kind of errors. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/codecparsers/gstav1parser.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gst-libs/gst/codecparsers/gstav1parser.c b/gst-libs/gst/codecparsers/gstav1parser.c
index 82293b478..f0e48e906 100644
--- a/gst-libs/gst/codecparsers/gstav1parser.c
+++ b/gst-libs/gst/codecparsers/gstav1parser.c
@@ -1414,7 +1414,7 @@ gst_av1_parse_metadata_itut_t35 (GstAV1Parser * parser, GstBitReader * br,
if (ret != GST_AV1_PARSER_OK)
return ret;
- if (itut_t35->itu_t_t35_country_code) {
+ if (itut_t35->itu_t_t35_country_code == 0xFF) {
itut_t35->itu_t_t35_country_code_extention_byte =
AV1_READ_BITS_CHECKED (br, 8, &ret);
if (ret != GST_AV1_PARSER_OK)
@@ -1689,6 +1689,12 @@ gst_av1_parser_parse_metadata_obu (GstAV1Parser * parser, GstAV1OBU * obu,
goto error;
retval = av1_skip_trailing_bits (parser, &bit_reader, obu);
+ if (retval != GST_AV1_PARSER_OK) {
+ GST_WARNING ("Metadata type %d may have wrong trailings.",
+ metadata->metadata_type);
+ retval = GST_AV1_PARSER_OK;
+ }
+
return retval;
error: