diff --git a/docs/libs/gst-plugins-bad-libs-sections.txt b/docs/libs/gst-plugins-bad-libs-sections.txt index 2c3928bd70..a523236f55 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 b69b7dbe2f..77ea80dbf0 100644 --- a/gst-libs/gst/base/gstaggregator.c +++ b/gst-libs/gst/base/gstaggregator.c @@ -2062,6 +2062,28 @@ gst_aggregator_pad_steal_buffer (GstAggregatorPad * pad) return buffer; } +/** + * 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 d0f1cdc885..8c4e7cff8c 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); /*********************