From: Nicolas Dufresne Date: Thu, 7 May 2020 15:06:45 +0000 (-0400) Subject: h264/h265parse: Fix initial skip X-Git-Tag: 1.19.3~507^2~1907 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=269ab891c574263cb5fdf48de8e396b8418be1f4;p=platform%2Fupstream%2Fgstreamer.git h264/h265parse: Fix initial skip Account for start codes possibly be 4 bytes. For HEVC, also take into account that we might be missing only one of the two identification bytes. Part-of: --- diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c index 8f12151..83c9853 100644 --- a/gst/videoparsers/gsth264parse.c +++ b/gst/videoparsers/gsth264parse.c @@ -1384,7 +1384,8 @@ gst_h264_parse_handle_frame (GstBaseParse * parse, } break; case GST_H264_PARSER_NO_NAL: - *skipsize = size - 3; + /* Start code may have up to 4 bytes */ + *skipsize = size - 4; goto skip; break; default: diff --git a/gst/videoparsers/gsth265parse.c b/gst/videoparsers/gsth265parse.c index 0c4ca17..849e743 100644 --- a/gst/videoparsers/gsth265parse.c +++ b/gst/videoparsers/gsth265parse.c @@ -1208,7 +1208,10 @@ gst_h265_parse_handle_frame (GstBaseParse * parse, } break; case GST_H265_PARSER_NO_NAL: - *skipsize = size - 3; + /* start code may have up to 4 bytes, and we may also get that return + * value if only one of the two header bytes are present, make sure + * not to skip too much */ + *skipsize = size - 5; goto skip; default: /* should not really occur either */