lavc/vvc_parser: Fix integer overflow calculating framerate

num_units_in_tick and time_scale are both 32-bit unsigned integers.
Storing them as ints was causing overflows.

Signed-off-by: Frank Plowman <post@frankplowman.com>
release/7.1
Frank Plowman 7 months ago committed by Nuo Mi
parent b4baa4c0b3
commit f499503073
  1. 4
      libavcodec/vvc_parser.c

@ -191,8 +191,8 @@ static void set_parser_ctx(AVCodecParserContext *s, AVCodecContext *avctx,
if (sps->sps_ptl_dpb_hrd_params_present_flag && if (sps->sps_ptl_dpb_hrd_params_present_flag &&
sps->sps_timing_hrd_params_present_flag) { sps->sps_timing_hrd_params_present_flag) {
int num = sps->sps_general_timing_hrd_parameters.num_units_in_tick; uint32_t num = sps->sps_general_timing_hrd_parameters.num_units_in_tick;
int den = sps->sps_general_timing_hrd_parameters.time_scale; uint32_t den = sps->sps_general_timing_hrd_parameters.time_scale;
if (num != 0 && den != 0) if (num != 0 && den != 0)
av_reduce(&avctx->framerate.den, &avctx->framerate.num, av_reduce(&avctx->framerate.den, &avctx->framerate.num,

Loading…
Cancel
Save