h264parser: Return BROKEN_LINK for missing SPS
authorJan Schmidt <jan@centricular.com>
Thu, 27 Jun 2019 16:42:00 +0000 (02:42 +1000)
committerJan Schmidt <jan@centricular.com>
Thu, 4 Jul 2019 14:17:59 +0000 (00:17 +1000)
When parsing SEI that require an SPS, return
GST_H264_PARSER_BROKEN_LINK instead of a generic
parsing error to let callers distinguish
bitstream errors from (expected) missing packets
when resuming decode.

gst-libs/gst/codecparsers/gsth264parser.c

index 5214db080f5389dab1c6e06fbf2a55b8f8d8d179..4fb66d1b4b3bf4b4752a04da40a815362ce5f12a 100644 (file)
@@ -964,10 +964,13 @@ static GstH264ParserResult
 gst_h264_parser_parse_pic_timing (GstH264NalParser * nalparser,
     GstH264PicTiming * tim, NalReader * nr)
 {
+  GstH264ParserResult error = GST_H264_PARSER_ERROR;
+
   GST_DEBUG ("parsing \"Picture timing\"");
   if (!nalparser->last_sps || !nalparser->last_sps->valid) {
-    GST_WARNING ("didn't get the associated sequence paramater set for the "
+    GST_WARNING ("didn't get the associated sequence parameter set for the "
         "current access unit");
+    error = GST_H264_PARSER_BROKEN_LINK;
     goto error;
   }
 
@@ -1013,7 +1016,7 @@ gst_h264_parser_parse_pic_timing (GstH264NalParser * nalparser,
 
 error:
   GST_WARNING ("error parsing \"Picture timing\"");
-  return GST_H264_PARSER_ERROR;
+  return error;
 }
 
 static GstH264ParserResult