From 2d778881cb023013d0a4e47cba1183d6a95568e9 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Sun, 15 May 2016 14:34:33 +0200 Subject: [PATCH] compositor: Check if we get a valid display ratio As is done everywhere else, and avoids setting bogus values And remove useless * checks (we always provide valid values and it's an internal function). CID #1320700 --- gst/compositor/compositor.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gst/compositor/compositor.c b/gst/compositor/compositor.c index 100316bb6f..c9fd3fc1ea 100644 --- a/gst/compositor/compositor.c +++ b/gst/compositor/compositor.c @@ -239,9 +239,12 @@ _mixer_pad_get_output_size (GstCompositor * comp, comp_pad->height <= 0 ? GST_VIDEO_INFO_HEIGHT (&vagg_pad->info) : comp_pad->height; - gst_video_calculate_display_ratio (&dar_n, &dar_d, pad_width, pad_height, - GST_VIDEO_INFO_PAR_N (&vagg_pad->info), - GST_VIDEO_INFO_PAR_D (&vagg_pad->info), out_par_n, out_par_d); + if (!gst_video_calculate_display_ratio (&dar_n, &dar_d, pad_width, pad_height, + GST_VIDEO_INFO_PAR_N (&vagg_pad->info), + GST_VIDEO_INFO_PAR_D (&vagg_pad->info), out_par_n, out_par_d)) { + GST_WARNING_OBJECT (comp_pad, "Cannot calculate display aspect ratio"); + *width = *height = 0; + } GST_LOG_OBJECT (comp_pad, "scaling %ux%u by %u/%u (%u/%u / %u/%u)", pad_width, pad_height, dar_n, dar_d, GST_VIDEO_INFO_PAR_N (&vagg_pad->info), GST_VIDEO_INFO_PAR_D (&vagg_pad->info), out_par_n, out_par_d); @@ -254,10 +257,8 @@ _mixer_pad_get_output_size (GstCompositor * comp, pad_width = gst_util_uint64_scale_int (pad_height, dar_n, dar_d); } - if (width) - *width = pad_width; - if (height) - *height = pad_height; + *width = pad_width; + *height = pad_height; } static gboolean