diff --git a/docs/libs/gstreamer-libs-sections.txt b/docs/libs/gstreamer-libs-sections.txt index 66f77af1ac..f5b22b3802 100644 --- a/docs/libs/gstreamer-libs-sections.txt +++ b/docs/libs/gstreamer-libs-sections.txt @@ -245,6 +245,7 @@ gst_aggregator_pad_pop_buffer gst_aggregator_pad_peek_buffer gst_aggregator_pad_drop_buffer gst_aggregator_pad_is_eos +gst_aggregator_pad_has_buffer GST_IS_AGGREGATOR_PAD GST_IS_AGGREGATOR_PAD_CLASS diff --git a/libs/gst/base/gstaggregator.c b/libs/gst/base/gstaggregator.c index 3051a17057..b67f36d6af 100644 --- a/libs/gst/base/gstaggregator.c +++ b/libs/gst/base/gstaggregator.c @@ -2945,6 +2945,27 @@ gst_aggregator_pad_peek_buffer (GstAggregatorPad * pad) return buffer; } +/** + * gst_aggregator_pad_has_buffer: + * @pad: the pad to check the buffer on + * + * Returns: %TRUE if the pad has a buffer available as the next thing. + * + * Since: 1.16 + */ +gboolean +gst_aggregator_pad_has_buffer (GstAggregatorPad * pad) +{ + gboolean has_buffer; + + PAD_LOCK (pad); + gst_aggregator_pad_clip_buffer_unlocked (pad); + has_buffer = (pad->priv->clipped_buffer != NULL); + PAD_UNLOCK (pad); + + return has_buffer; +} + /** * gst_aggregator_pad_is_eos: * @pad: an aggregator pad diff --git a/libs/gst/base/gstaggregator.h b/libs/gst/base/gstaggregator.h index 67d52dc65c..4c9c77d25b 100644 --- a/libs/gst/base/gstaggregator.h +++ b/libs/gst/base/gstaggregator.h @@ -111,6 +111,9 @@ GstBuffer * gst_aggregator_pad_peek_buffer (GstAggregatorPad * pad); GST_BASE_API gboolean gst_aggregator_pad_drop_buffer (GstAggregatorPad * pad); +GST_BASE_API +gboolean gst_aggregator_pad_has_buffer (GstAggregatorPad * pad); + GST_BASE_API gboolean gst_aggregator_pad_is_eos (GstAggregatorPad * pad);