From: Matthew Waters Date: Wed, 14 Aug 2019 12:08:34 +0000 (+1000) Subject: h264parse: don't critical on VUI parameters > 2^31 X-Git-Tag: 1.16.2~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=92eaeb5fb6781b9a643b3bd418300ccbd263c1d7;p=platform%2Fupstream%2Fgst-plugins-bad.git h264parse: don't critical on VUI parameters > 2^31 A guint32 greater than 2^31 would be interpreted as negative by gst_util_uint64_scale_int() and critical. Use the 64-bit integer version of the function instead. --- diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c index 41a31eafa..f4d82e55d 100644 --- a/gst/videoparsers/gsth264parse.c +++ b/gst/videoparsers/gsth264parse.c @@ -2224,14 +2224,14 @@ gst_h264_parse_get_timestamp (GstH264Parse * h264parse, /* If upstream timestamp is valid, we respect it and adjust current * reference point */ h264parse->ts_trn_nb = upstream - - (GstClockTime) gst_util_uint64_scale_int + (GstClockTime) gst_util_uint64_scale (h264parse->sei_cpb_removal_delay * GST_SECOND, sps->vui_parameters.num_units_in_tick, sps->vui_parameters.time_scale); } else { /* If no upstream timestamp is given, we write in new timestamp */ upstream = h264parse->dts = h264parse->ts_trn_nb + - (GstClockTime) gst_util_uint64_scale_int + (GstClockTime) gst_util_uint64_scale (h264parse->sei_cpb_removal_delay * GST_SECOND, sps->vui_parameters.num_units_in_tick, sps->vui_parameters.time_scale); @@ -2242,7 +2242,7 @@ gst_h264_parse_get_timestamp (GstH264Parse * h264parse, GST_LOG_OBJECT (h264parse, "duration based ts"); /* naive method: no removal delay specified * track upstream timestamp and provide best guess frame duration */ - dur = gst_util_uint64_scale_int (duration * GST_SECOND, + dur = gst_util_uint64_scale (duration * GST_SECOND, sps->vui_parameters.num_units_in_tick, sps->vui_parameters.time_scale); /* sanity check */ if (dur < GST_MSECOND) {