gl/sink: make sure we always initialize the upload object
authorMatthew Waters <ystreet00@gmail.com>
Tue, 6 May 2014 23:11:25 +0000 (09:11 +1000)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:31:39 +0000 (19:31 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=729542

ext/gl/gstglimagesink.c

index 7b3d171..1cd5c5e 100644 (file)
@@ -687,9 +687,21 @@ gst_glimage_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
     gst_object_unref (oldpool);
   }
 
+  if (glimage_sink->upload)
+    gst_object_unref (glimage_sink->upload);
   glimage_sink->upload = gst_object_ref (GST_GL_BUFFER_POOL (newpool)->upload);
 
+  if (!gst_gl_upload_init_format (glimage_sink->upload, &vinfo))
+    goto upload_error;
+
   return TRUE;
+
+upload_error:
+  {
+    GST_ELEMENT_ERROR (glimage_sink, RESOURCE, NOT_FOUND,
+        ("%s", "Failed to initialize upload resources"), (NULL));
+    return FALSE;
+  }
 }
 
 static GstFlowReturn