summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-08-27 17:32:09 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-09-04 14:52:09 +0200
commit1ce0b2dfc711d864043beab1c861f50e3f409661 (patch)
tree38071b1d489a0f5be5a62e128e96a219d43bfb28
parent37ee281d133eebb36163f77d04c1451f2bbfd211 (diff)
avidemux: Don't use GST_FLOW_IS_FATAL()
And document why wrong-state doesn't need an error message.
-rw-r--r--gst/avi/gstavidemux.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 1b93f0949..208d8d765 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -5109,13 +5109,13 @@ gst_avi_demux_loop (GstPad * pad)
return;
/* ERRORS */
-pause:
- GST_LOG_OBJECT (avi, "pausing task, reason %s", gst_flow_get_name (res));
- avi->segment_running = FALSE;
- gst_pad_pause_task (avi->sinkpad);
+pause:{
+
+ gboolean push_eos = FALSE;
+ GST_LOG_OBJECT (avi, "pausing task, reason %s", gst_flow_get_name (res));
+ avi->segment_running = FALSE;
+ gst_pad_pause_task (avi->sinkpad);
- if (GST_FLOW_IS_FATAL (res) || (res == GST_FLOW_NOT_LINKED)) {
- gboolean push_eos = TRUE;
if (res == GST_FLOW_UNEXPECTED) {
/* handle end-of-stream/segment */
@@ -5131,13 +5131,17 @@ pause:
(GST_ELEMENT_CAST (avi),
gst_message_new_segment_done (GST_OBJECT_CAST (avi),
GST_FORMAT_TIME, stop));
- push_eos = FALSE;
+ } else {
+ push_eos = TRUE;
}
- } else {
- /* for fatal errors we post an error message */
+ } else if (res == GST_FLOW_NOT_LINKED || res < GST_FLOW_UNEXPECTED) {
+ /* for fatal errors we post an error message, wrong-state is
+ * not fatal because it happens due to flushes and only means
+ * that we should stop now. */
GST_ELEMENT_ERROR (avi, STREAM, FAILED,
(_("Internal data stream error.")),
("streaming stopped, reason %s", gst_flow_get_name (res)));
+ push_eos = TRUE;
}
if (push_eos) {
GST_INFO_OBJECT (avi, "sending eos");