From c94f9520563a91eb89e2120712da17d297bac5db Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Tue, 19 May 2009 01:13:34 +0300 Subject: [PATCH] adder: add more logging and return value checking --- gst/adder/gstadder.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/gst/adder/gstadder.c b/gst/adder/gstadder.c index ac0130a8c8..2905d3f5a2 100644 --- a/gst/adder/gstadder.c +++ b/gst/adder/gstadder.c @@ -644,10 +644,6 @@ gst_adder_src_event (GstPad * pad, GstEvent * event) adder = GST_ADDER (gst_pad_get_parent (pad)); switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_QOS: - /* QoS might be tricky */ - result = FALSE; - break; case GST_EVENT_SEEK: { GstSeekFlags flags; @@ -667,6 +663,7 @@ gst_adder_src_event (GstPad * pad, GstEvent * event) * when all pads received a FLUSH_STOP. */ gst_pad_push_event (adder->srcpad, gst_event_new_flush_start ()); } + GST_DEBUG_OBJECT (adder, "handling seek event: %" GST_PTR_FORMAT, event); /* now wait for the collected to be finished and mark a new * segment */ GST_OBJECT_LOCK (adder->collect); @@ -676,16 +673,24 @@ gst_adder_src_event (GstPad * pad, GstEvent * event) adder->segment_position = 0; adder->segment_pending = TRUE; GST_OBJECT_UNLOCK (adder->collect); + GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT, + event); result = forward_event (adder, event); break; } + case GST_EVENT_QOS: + /* QoS might be tricky */ + result = FALSE; + break; case GST_EVENT_NAVIGATION: /* navigation is rather pointless. */ result = FALSE; break; default: /* just forward the rest for now */ + GST_DEBUG_OBJECT (adder, "forward unhandled event: %s", + GST_EVENT_TYPE_NAME (event)); result = forward_event (adder, event); break; } @@ -988,9 +993,18 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data) event = gst_event_new_new_segment_full (FALSE, adder->segment_rate, 1.0, GST_FORMAT_TIME, adder->timestamp, -1, adder->segment_position); - gst_pad_push_event (adder->srcpad, event); - adder->segment_pending = FALSE; - adder->segment_position = 0; + if (event) { + if (!gst_pad_push_event (adder->srcpad, event)) { + GST_WARNING_OBJECT (adder->srcpad, "Sending event %p (%s) failed.", + event, GST_EVENT_TYPE_NAME (event)); + } + adder->segment_pending = FALSE; + adder->segment_position = 0; + } else { + GST_WARNING_OBJECT (adder->srcpad, "Creating new segment event for " + "start:%" G_GINT64_FORMAT " pos:%" G_GINT64_FORMAT " failed", + adder->timestamp, adder->segment_position); + } } /* set timestamps on the output buffer */ @@ -1016,6 +1030,8 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data) GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf))); ret = gst_pad_push (adder->srcpad, outbuf); + GST_LOG_OBJECT (adder, "pushed outbuf, result = %s", gst_flow_get_name (ret)); + return ret; /* ERRORS */ -- 2.34.1