gstreamer: collectpads2: always recording incoming segment info if no buffer_func set

Mark Nauwelaerts mnauw at kemper.freedesktop.org
Tue Apr 17 03:57:35 PDT 2012


Module: gstreamer
Branch: master
Commit: 5823dd472480d04f687045f5424a670310bcd807
URL:    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=5823dd472480d04f687045f5424a670310bcd807

Author: Mark Nauwelaerts <mark.nauwelaerts at collabora.co.uk>
Date:   Tue Apr 17 12:23:05 2012 +0200

collectpads2: always recording incoming segment info if no buffer_func set

---

 libs/gst/base/gstcollectpads2.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/libs/gst/base/gstcollectpads2.c b/libs/gst/base/gstcollectpads2.c
index 9368e38..7bf4ec6 100644
--- a/libs/gst/base/gstcollectpads2.c
+++ b/libs/gst/base/gstcollectpads2.c
@@ -1814,22 +1814,23 @@ gst_collect_pads2_event (GstPad * pad, GstEvent * event)
           ", stop %" GST_TIME_FORMAT, GST_TIME_ARGS (start),
           GST_TIME_ARGS (stop));
 
-      /* default muxing functionality */
-      if (!buffer_func)
-        goto newsegment_done;
-
       /* default collection can not handle other segment formats than time */
-      if (format != GST_FORMAT_TIME) {
+      if (buffer_func && format != GST_FORMAT_TIME) {
         GST_WARNING_OBJECT (pads, "GstCollectPads2 default collecting "
             "can only handle time segments. Non time segment ignored.");
         goto newsegment_done;
       }
 
+      /* accept segment */
       gst_segment_set_newsegment_full (&data->segment, update, rate, arate,
           format, start, stop, time);
 
       GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_NEW_SEGMENT);
 
+      /* default muxing functionality */
+      if (!buffer_func)
+        goto newsegment_done;
+
       /* If oldest time is not known, or current pad got newsegment;
        * recalculate the state */
       if (!pads->priv->earliest_data || pads->priv->earliest_data == data) {



More information about the gstreamer-commits mailing list