gltestsrc: do not leak pool in error cases
authorOgnyan Tonchev <ognyan@axis.com>
Tue, 16 Sep 2014 09:41:43 +0000 (11:41 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:31:46 +0000 (19:31 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=736730

ext/gl/gstgltestsrc.c

index 52e0e5ee041ecc3a3ae6f36343ae896c54a03c44..b64ebe1558e30cceef40129f7050ae10c0875e3e 100644 (file)
@@ -608,22 +608,6 @@ gst_gl_test_src_decide_allocation (GstBaseSrc * basesrc, GstQuery * query)
   guint out_width, out_height;
   GstGLContext *other_context = NULL;
 
-  gst_query_parse_allocation (query, &caps, NULL);
-
-  if (gst_query_get_n_allocation_pools (query) > 0) {
-    gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
-
-    update_pool = TRUE;
-  } else {
-    GstVideoInfo vinfo;
-
-    gst_video_info_init (&vinfo);
-    gst_video_info_from_caps (&vinfo, caps);
-    size = vinfo.size;
-    min = max = 0;
-    update_pool = FALSE;
-  }
-
   if (!gst_gl_ensure_display (src, &src->display))
     return FALSE;
 
@@ -678,6 +662,22 @@ gst_gl_test_src_decide_allocation (GstBaseSrc * basesrc, GstQuery * query)
           &src->fbo, &src->depthbuffer))
     goto context_error;
 
+  gst_query_parse_allocation (query, &caps, NULL);
+
+  if (gst_query_get_n_allocation_pools (query) > 0) {
+    gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
+
+    update_pool = TRUE;
+  } else {
+    GstVideoInfo vinfo;
+
+    gst_video_info_init (&vinfo);
+    gst_video_info_from_caps (&vinfo, caps);
+    size = vinfo.size;
+    min = max = 0;
+    update_pool = FALSE;
+  }
+
   if (!pool)
     pool = gst_gl_buffer_pool_new (src->context);