2005-08-31 Wim Taymans <wim@fluendo.com>
+ * gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
+ (gst_base_transform_handle_buffer), (gst_base_transform_chain):
+ Don't leak refcounts on buffers.
+
+2005-08-31 Wim Taymans <wim@fluendo.com>
+
* gst/base/gstbasetransform.c: (gst_base_transform_configure_caps),
(gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
(gst_base_transform_chain), (gst_base_transform_change_state):
else
GST_LOG_OBJECT (trans, "... and offset NONE");
+ if (!trans->negotiated)
+ goto not_negotiated;
+
if (trans->in_place) {
/* passthrough elements or when the buffer is writable
* can be performed with the _ip method */
return ret;
/* ERRORS */
+not_negotiated:
+ {
+ gst_buffer_unref (inbuf);
+ GST_ELEMENT_ERROR (trans, STREAM, NOT_IMPLEMENTED,
+ ("not negotiated"), ("not negotiated"));
+ return GST_FLOW_NOT_NEGOTIATED;
+ }
no_size:
{
gst_buffer_unref (inbuf);
trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
- if (!trans->negotiated)
- goto not_negotiated;
-
ret = gst_base_transform_handle_buffer (trans, buffer, &outbuf);
if (ret == GST_FLOW_OK) {
ret = gst_pad_push (trans->srcpad, outbuf);
gst_object_unref (trans);
return ret;
-
-not_negotiated:
- {
- return GST_FLOW_NOT_NEGOTIATED;
- }
}
static void
else
GST_LOG_OBJECT (trans, "... and offset NONE");
+ if (!trans->negotiated)
+ goto not_negotiated;
+
if (trans->in_place) {
/* passthrough elements or when the buffer is writable
* can be performed with the _ip method */
return ret;
/* ERRORS */
+not_negotiated:
+ {
+ gst_buffer_unref (inbuf);
+ GST_ELEMENT_ERROR (trans, STREAM, NOT_IMPLEMENTED,
+ ("not negotiated"), ("not negotiated"));
+ return GST_FLOW_NOT_NEGOTIATED;
+ }
no_size:
{
gst_buffer_unref (inbuf);
trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
- if (!trans->negotiated)
- goto not_negotiated;
-
ret = gst_base_transform_handle_buffer (trans, buffer, &outbuf);
if (ret == GST_FLOW_OK) {
ret = gst_pad_push (trans->srcpad, outbuf);
gst_object_unref (trans);
return ret;
-
-not_negotiated:
- {
- return GST_FLOW_NOT_NEGOTIATED;
- }
}
static void