From 64f96facca707ec2dd23dea4ffeee61a52c6913f Mon Sep 17 00:00:00 2001 From: Julian Bouzas Date: Fri, 20 Nov 2020 15:01:03 +0000 Subject: [PATCH] nvcodec: Assume 25fps if framerate is invalid when calculating latency Part-of: --- sys/nvcodec/gstnvdec.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sys/nvcodec/gstnvdec.c b/sys/nvcodec/gstnvdec.c index 417a5cf..2ccb696 100644 --- a/sys/nvcodec/gstnvdec.c +++ b/sys/nvcodec/gstnvdec.c @@ -323,13 +323,21 @@ gst_nvdec_get_max_display_delay (GstNvDec * nvdec) static gint64 gst_nvdec_get_latency (GstNvDec * nvdec) { + gint fps_n, fps_d; + if (!nvdec->input_state) return 0; + fps_n = GST_VIDEO_INFO_FPS_N (&nvdec->input_state->info); + fps_d = GST_VIDEO_INFO_FPS_D (&nvdec->input_state->info); + + /* We assume 25 fps if the input framerate is invalid */ + if (fps_n < 1 || fps_d < 1) { + fps_n = 25; + fps_d = 1; + } return gst_util_uint64_scale_int ((nvdec->num_decode_surface + - gst_nvdec_get_max_display_delay (nvdec)) * GST_SECOND, - GST_VIDEO_INFO_FPS_D (&nvdec->input_state->info), - GST_VIDEO_INFO_FPS_N (&nvdec->input_state->info)); + gst_nvdec_get_max_display_delay (nvdec)) * GST_SECOND, fps_d, fps_n); } /* 0: fail, 1: succeeded, > 1: override dpb size of parser -- 2.7.4