From 0f7d9f156a06d0226b1a2b3b70e2786b9bf71e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 8 Jun 2007 16:49:41 +0000 Subject: When driving the pipeline, also post an error when we get a not-linked flow return from downstream. Original commit message from CVS: * ext/timidity/gsttimidity.c: (gst_timidity_loop): * ext/timidity/gstwildmidi.c: (gst_wildmidi_loop): * gst/tta/gstttaparse.c: (gst_tta_parse_loop): When driving the pipeline, also post an error when we get a not-linked flow return from downstream. --- ext/timidity/gsttimidity.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'ext/timidity/gsttimidity.c') diff --git a/ext/timidity/gsttimidity.c b/ext/timidity/gsttimidity.c index 8b8ed316..06541f2e 100644 --- a/ext/timidity/gsttimidity.c +++ b/ext/timidity/gsttimidity.c @@ -697,18 +697,25 @@ gst_timidity_loop (GstPad * sinkpad) gst_buffer_set_caps (out, timidity->out_caps); ret = gst_pad_push (timidity->srcpad, out); - if (ret == GST_FLOW_OK) - return; + if (GST_FLOW_IS_FATAL (ret) || ret == GST_FLOW_NOT_LINKED) + goto error; + + return; - if (GST_FLOW_IS_FATAL (ret)) { +paused: + { + GST_DEBUG_OBJECT (timidity, "pausing task"); + gst_pad_pause_task (timidity->sinkpad); + return; + } +error: + { GST_ELEMENT_ERROR (timidity, STREAM, FAILED, - ("Internal data stream error XXX"), + ("Internal data stream error"), ("Streaming stopped, reason %s", gst_flow_get_name (ret))); + gst_pad_push_event (timidity->srcpad, gst_event_new_eos ()); + goto paused; } - -paused: - GST_LOG_OBJECT (timidity, "pausing task"); - gst_pad_pause_task (timidity->sinkpad); } static GstStateChangeReturn -- cgit v1.2.1