aggregator: Add API to check if a pad has a new buffer
authorOlivier Crête <olivier.crete@collabora.com>
Mon, 23 Apr 2018 15:34:19 +0000 (11:34 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Wed, 25 Apr 2018 18:20:19 +0000 (14:20 -0400)
https://bugzilla.gnome.org/show_bug.cgi?id=795332

docs/libs/gstreamer-libs-sections.txt
libs/gst/base/gstaggregator.c
libs/gst/base/gstaggregator.h

index d7d5634..1da69ce 100644 (file)
@@ -252,6 +252,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
 <SUBSECTION Standard>
 GST_IS_AGGREGATOR_PAD
 GST_IS_AGGREGATOR_PAD_CLASS
index 3051a17..b67f36d 100644 (file)
@@ -2946,6 +2946,27 @@ gst_aggregator_pad_peek_buffer (GstAggregatorPad * pad)
 }
 
 /**
+ * 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
  *
index df4e8e3..122ee3e 100644 (file)
@@ -113,6 +113,9 @@ 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);
 
 /*********************