From: Wim Taymans Date: Tue, 18 Sep 2012 19:49:41 +0000 (+0200) Subject: basetransform: check acquire result value X-Git-Tag: 1.0.0~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ea3675cf45a16030477184c5203d5c06773f939;p=platform%2Fupstream%2Fgstreamer.git basetransform: check acquire result value Check the result value from _buffer_pool_acquire() and return the value when allocation failed. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684285 --- diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c index 54674ef..884fde4 100644 --- a/libs/gst/base/gstbasetransform.c +++ b/libs/gst/base/gstbasetransform.c @@ -1516,7 +1516,7 @@ default_prepare_output_buffer (GstBaseTransform * trans, GstBuffer * inbuf, GstBuffer ** outbuf) { GstBaseTransformPrivate *priv; - GstFlowReturn ret = GST_FLOW_OK; + GstFlowReturn ret; GstBaseTransformClass *bclass; GstCaps *incaps, *outcaps; gsize insize, outsize; @@ -1544,6 +1544,9 @@ default_prepare_output_buffer (GstBaseTransform * trans, } GST_DEBUG_OBJECT (trans, "using pool alloc"); ret = gst_buffer_pool_acquire_buffer (priv->pool, outbuf, NULL); + if (ret != GST_FLOW_OK) + goto alloc_failed; + goto copy_meta; } @@ -1590,7 +1593,7 @@ copy_meta: } done: - return ret; + return GST_FLOW_OK; /* ERRORS */ /* ERRORS */ @@ -1605,6 +1608,11 @@ unknown_size: GST_ERROR_OBJECT (trans, "unknown output size"); return GST_FLOW_ERROR; } +alloc_failed: + { + GST_DEBUG_OBJECT (trans, "could not allocate buffer from pool"); + return ret; + } } typedef struct