gl: propagate return value from filter and filter_texture
authorXavier Claessens <xavier.claessens@collabora.com>
Tue, 26 May 2015 19:01:37 +0000 (15:01 -0400)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:02 +0000 (19:32 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=749846

gst-libs/gst/gl/gstglfilter.c

index 11fad7c..6df9c1b 100644 (file)
@@ -901,6 +901,7 @@ gst_gl_filter_transform (GstBaseTransform * bt, GstBuffer * inbuf,
   GstGLDisplay *display = GST_GL_BASE_FILTER (bt)->display;
   GstGLContext *context = GST_GL_BASE_FILTER (bt)->context;
   GstGLSyncMeta *out_sync_meta, *in_sync_meta;
+  gboolean ret;
 
   if (!display)
     return GST_FLOW_NOT_NEGOTIATED;
@@ -912,15 +913,15 @@ gst_gl_filter_transform (GstBaseTransform * bt, GstBuffer * inbuf,
     gst_gl_sync_meta_wait (in_sync_meta, context);
 
   if (filter_class->filter)
-    filter_class->filter (filter, inbuf, outbuf);
-  else if (filter_class->filter_texture)
-    gst_gl_filter_filter_texture (filter, inbuf, outbuf);
+    ret = filter_class->filter (filter, inbuf, outbuf);
+  else
+    ret = gst_gl_filter_filter_texture (filter, inbuf, outbuf);
 
   out_sync_meta = gst_buffer_get_gl_sync_meta (outbuf);
   if (out_sync_meta)
     gst_gl_sync_meta_set_sync_point (out_sync_meta, context);
 
-  return GST_FLOW_OK;
+  return ret ? GST_FLOW_OK : GST_FLOW_ERROR;
 }
 
 struct glcb2