aggregator: Add API to check if a pad has a new buffer
https://bugzilla.gnome.org/show_bug.cgi?id=795332
diff --git a/docs/libs/gstreamer-libs-sections.txt b/docs/libs/gstreamer-libs-sections.txt
index 66f77af..f5b22b3 100644
--- a/docs/libs/gstreamer-libs-sections.txt
+++ b/docs/libs/gstreamer-libs-sections.txt
@@ -245,6 +245,7 @@
gst_aggregator_pad_peek_buffer
gst_aggregator_pad_drop_buffer
gst_aggregator_pad_is_eos
+gst_aggregator_pad_has_buffer
<SUBSECTION Standard>
GST_IS_AGGREGATOR_PAD
GST_IS_AGGREGATOR_PAD_CLASS
diff --git a/libs/gst/base/gstaggregator.c b/libs/gst/base/gstaggregator.c
index 3051a17..b67f36d 100644
--- a/libs/gst/base/gstaggregator.c
+++ b/libs/gst/base/gstaggregator.c
@@ -2946,6 +2946,27 @@
}
/**
+ * 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 67d52dc..4c9c77d 100644
--- a/libs/gst/base/gstaggregator.h
+++ b/libs/gst/base/gstaggregator.h
@@ -112,6 +112,9 @@
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);
/*********************