From: Matthew Waters Date: Thu, 17 Sep 2015 06:55:11 +0000 (+1000) Subject: gl/uploadelement: fail earlier if we could not upload the buffer X-Git-Tag: 1.19.3~511^2~1989^2~666 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=817f05cd707b0491f72b07ca1f68f1ef94a2aa54;p=platform%2Fupstream%2Fgstreamer.git gl/uploadelement: fail earlier if we could not upload the buffer --- diff --git a/ext/gl/gstgluploadelement.c b/ext/gl/gstgluploadelement.c index 3340e95..83ff24c 100644 --- a/ext/gl/gstgluploadelement.c +++ b/ext/gl/gstgluploadelement.c @@ -34,8 +34,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_gl_upload_element_debug); G_DEFINE_TYPE_WITH_CODE (GstGLUploadElement, gst_gl_upload_element, GST_TYPE_GL_BASE_FILTER, GST_DEBUG_CATEGORY_INIT (gst_gl_upload_element_debug, "gluploadelement", 0, - "glupload Element"); - ); + "glupload Element");); static gboolean gst_gl_upload_element_get_unit_size (GstBaseTransform * trans, GstCaps * caps, gsize * size); @@ -224,13 +223,21 @@ gst_gl_upload_element_prepare_output_buffer (GstBaseTransform * bt, /* FIXME Having to release after perform is an aberation */ gst_gl_upload_release_buffer (upload->upload); + if (ret != GST_GL_UPLOAD_DONE || *outbuf == NULL) { + GST_ELEMENT_ERROR (bt, RESOURCE, NOT_FOUND, ("%s", + "Failed to upload buffer"), (NULL)); + if (*outbuf) + gst_buffer_unref (*outbuf); + return GST_FLOW_ERROR; + } + /* basetransform doesn't unref if they're the same */ if (buffer == *outbuf) gst_buffer_unref (*outbuf); else bclass->copy_metadata (bt, buffer, *outbuf); - return ret == GST_GL_UPLOAD_DONE ? GST_FLOW_OK : GST_FLOW_ERROR; + return GST_FLOW_OK; } static GstFlowReturn