summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2015-09-17 16:55:11 +1000
committerMatthew Waters <matthew@centricular.com>2015-09-17 20:21:43 +1000
commitd088a5294b87046112a2451b3ef54dba3f98b0a6 (patch)
treebcda269e7a2fcb550f970371ac9d6fcb10f462ea
parent1625f746320ffdf1ea584706b4c5999ec3a38495 (diff)
downloadgstreamer-plugins-bad-d088a5294b87046112a2451b3ef54dba3f98b0a6.tar.gz
gl/uploadelement: fail earlier if we could not upload the buffer
-rw-r--r--ext/gl/gstgluploadelement.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/ext/gl/gstgluploadelement.c b/ext/gl/gstgluploadelement.c
index 3340e95be..83ff24c4f 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