summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sf.net>2009-05-19 01:13:34 +0300
committerStefan Kost <ensonic@users.sf.net>2009-05-19 01:13:34 +0300
commitc94f9520563a91eb89e2120712da17d297bac5db (patch)
tree2911dc8e121177fcd36645b1349575eace587831
parent705b01aa9385813d2908393bce7039953c32cbed (diff)
adder: add more logging and return value checking
-rw-r--r--gst/adder/gstadder.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/gst/adder/gstadder.c b/gst/adder/gstadder.c
index ac0130a8c..2905d3f5a 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 */