From: Tim-Philipp Müller Date: Fri, 13 Feb 2015 15:49:50 +0000 (+0000) Subject: aggregator: add gst_aggregator_pad_drop_buffer() X-Git-Tag: 1.19.3~507^2~9353 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=592c2c8105c50899a6230502997f2db0cb65993e;p=platform%2Fupstream%2Fgstreamer.git aggregator: add gst_aggregator_pad_drop_buffer() steal_buffer() + unref seems to be a wide-spread idiom (which perhaps indicates that something is not quite right with the way aggregator pad works currently). --- diff --git a/docs/libs/gst-plugins-bad-libs-sections.txt b/docs/libs/gst-plugins-bad-libs-sections.txt index 2c3928b..a523236 100644 --- a/docs/libs/gst-plugins-bad-libs-sections.txt +++ b/docs/libs/gst-plugins-bad-libs-sections.txt @@ -1323,6 +1323,8 @@ GstAggregatorPad GstAggregatorPadClass gst_aggregator_pad_steal_buffer gst_aggregator_pad_get_buffer +gst_aggregator_pad_drop_buffer +gst_aggregator_pad_is_eos GST_IS_AGGREGATOR_PAD GST_IS_AGGREGATOR_PAD_CLASS diff --git a/gst-libs/gst/base/gstaggregator.c b/gst-libs/gst/base/gstaggregator.c index b69b7db..77ea80d 100644 --- a/gst-libs/gst/base/gstaggregator.c +++ b/gst-libs/gst/base/gstaggregator.c @@ -2063,6 +2063,28 @@ gst_aggregator_pad_steal_buffer (GstAggregatorPad * pad) } /** + * gst_aggregator_pad_drop_buffer: + * @pad: the pad where to drop any pending buffer + * + * Drop the buffer currently queued in @pad. + * + * Returns: TRUE if there was a buffer queued in @pad, or FALSE if not. + */ +gboolean +gst_aggregator_pad_drop_buffer (GstAggregatorPad * pad) +{ + GstBuffer *buf; + + buf = gst_aggregator_pad_steal_buffer (pad); + + if (buf == NULL) + return FALSE; + + gst_buffer_unref (buf); + return TRUE; +} + +/** * gst_aggregator_pad_get_buffer: * @pad: the pad to get buffer from * diff --git a/gst-libs/gst/base/gstaggregator.h b/gst-libs/gst/base/gstaggregator.h index d0f1cdc..8c4e7cf 100644 --- a/gst-libs/gst/base/gstaggregator.h +++ b/gst-libs/gst/base/gstaggregator.h @@ -104,6 +104,7 @@ GType gst_aggregator_pad_get_type (void); GstBuffer * gst_aggregator_pad_steal_buffer (GstAggregatorPad * pad); GstBuffer * gst_aggregator_pad_get_buffer (GstAggregatorPad * pad); +gboolean gst_aggregator_pad_drop_buffer (GstAggregatorPad * pad); gboolean gst_aggregator_pad_is_eos (GstAggregatorPad * pad); /*********************