glcolorbalance: reconfigure on passthrough changes
authorMatthew Waters <matthew@centricular.com>
Mon, 19 Sep 2016 06:54:43 +0000 (16:54 +1000)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:22 +0000 (19:32 +0000)
Fixes an assertion when moving from passthrough to non-passthrough

Without an explicit reconfigure, glfiter won't have created the GL
resources such as the FBO, GL bufferpool, etc and basetransform will
allocate sysmem buffers instead.

ext/gl/gstglcolorbalance.c

index 92d4447..33b5a50 100644 (file)
@@ -150,14 +150,17 @@ gst_gl_color_balance_is_passthrough (GstGLColorBalance * glcolorbalance)
 static void
 gst_gl_color_balance_update_properties (GstGLColorBalance * glcolorbalance)
 {
-  gboolean passthrough;
+  gboolean current_passthrough, passthrough;
   GstBaseTransform *base = GST_BASE_TRANSFORM (glcolorbalance);
 
   GST_OBJECT_LOCK (glcolorbalance);
   passthrough = gst_gl_color_balance_is_passthrough (glcolorbalance);
   GST_OBJECT_UNLOCK (glcolorbalance);
+  current_passthrough = gst_base_transform_is_passthrough (base);
 
   gst_base_transform_set_passthrough (base, passthrough);
+  if (current_passthrough != passthrough)
+    gst_base_transform_reconfigure_src (base);
 }
 
 static gboolean