compositor/glvideomixer: Don't calculate PAR/DAR with unset GstVideoInfos
authorSebastian Dröge <sebastian@centricular.com>
Thu, 21 May 2015 13:24:48 +0000 (16:24 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 21 May 2015 13:24:48 +0000 (16:24 +0300)
Otherwise we divide by zero.

ext/gl/gstglvideomixer.c
gst/compositor/compositor.c

index 148c702..6ae693d 100644 (file)
@@ -630,6 +630,15 @@ _mixer_pad_get_output_size (GstGLVideoMixer * mix,
   gint pad_width, pad_height;
   guint dar_n, dar_d;
 
+  /* FIXME: Anything better we can do here? */
+  if (!vagg_pad->info.finfo
+      || vagg_pad->info.finfo->format == GST_VIDEO_FORMAT_UNKNOWN) {
+    GST_DEBUG_OBJECT (mix_pad, "Have no caps yet");
+    *width = 0;
+    *height = 0;
+    return;
+  }
+
   pad_width =
       mix_pad->width <=
       0 ? GST_VIDEO_INFO_WIDTH (&vagg_pad->info) : mix_pad->width;
index 4967cdc..dfeb379 100644 (file)
@@ -223,6 +223,15 @@ _mixer_pad_get_output_size (GstCompositor * comp,
   gint pad_width, pad_height;
   guint dar_n, dar_d;
 
+  /* FIXME: Anything better we can do here? */
+  if (!vagg_pad->info.finfo
+      || vagg_pad->info.finfo->format == GST_VIDEO_FORMAT_UNKNOWN) {
+    GST_DEBUG_OBJECT (comp_pad, "Have no caps yet");
+    *width = 0;
+    *height = 0;
+    return;
+  }
+
   pad_width =
       comp_pad->width <=
       0 ? GST_VIDEO_INFO_WIDTH (&vagg_pad->info) : comp_pad->width;