[Bug 770158] element: Add API to more easily posting messages about flowing issues

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Aug 19 22:23:41 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=770158

Thibault Saunier <tsaunier at gnome.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #333713|1                           |0
        is obsolete|                            |

--- Comment #9 from Thibault Saunier <tsaunier at gnome.org> ---
Comment on attachment 333713
  --> https://bugzilla.gnome.org/attachment.cgi?id=333713
Use the new API to post flow ERROR messages on the bus

>From 4320fd26545a050936d131c62b403919548fb14c Mon Sep 17 00:00:00 2001
>From: Thibault Saunier <thibault.saunier at osg.samsung.com>
>Date: Fri, 19 Aug 2016 11:12:10 -0700
>Subject: [PATCH] Use the new API to post flow ERROR messages on the bus
>
>https://bugzilla.gnome.org/show_bug.cgi?id=770158
>---
> ext/gme/gstgme.c                              |  4 +---
> ext/sndfile/gstsfsink.c                       |  4 +---
> ext/teletextdec/gstteletextdec.c              |  4 +---
> ext/timidity/gsttimidity.c                    |  4 +---
> ext/timidity/gstwildmidi.c                    |  4 +---
> gst-libs/gst/adaptivedemux/gstadaptivedemux.c | 15 ++++++++-------
> gst/aiff/aiffparse.c                          |  4 +---
> gst/midi/midiparse.c                          |  4 +---
> gst/mpegdemux/gstmpegdemux.c                  |  4 +---
> gst/mpegtsdemux/mpegtsbase.c                  |  4 +---
> gst/mxf/mxfdemux.c                            |  4 +---
> gst/nuvdemux/gstnuvdemux.c                    |  4 +---
> gst/tta/gstttaparse.c                         |  4 +---
> sys/androidmedia/gstamcaudiodec.c             |  4 +---
> sys/androidmedia/gstamcvideodec.c             |  4 +---
> sys/androidmedia/gstamcvideoenc.c             |  4 +---
> sys/applemedia/avfassetsrc.m                  |  3 +--
> 17 files changed, 24 insertions(+), 54 deletions(-)
>
>diff --git a/ext/gme/gstgme.c b/ext/gme/gstgme.c
>index 1c5c83c..4fb4429 100644
>--- a/ext/gme/gstgme.c
>+++ b/ext/gme/gstgme.c
>@@ -353,9 +353,7 @@ gst_gme_play (GstPad * pad)
>     if (flow_return == GST_FLOW_EOS) {
>       gst_pad_push_event (pad, gst_event_new_eos ());
>     } else if (flow_return < GST_FLOW_EOS || flow_return == GST_FLOW_NOT_LINKED) {
>-      GST_ELEMENT_ERROR (gme, STREAM, FAILED, ("Internal data stream error."),
>-          ("stream stopped, reason %s", gst_flow_get_name (flow_return)));
>-
>+      GST_ELEMENT_FLOW_ERROR (gme, flow_return);
>       gst_pad_push_event (pad, gst_event_new_eos ());
>     }
>   }
>diff --git a/ext/sndfile/gstsfsink.c b/ext/sndfile/gstsfsink.c
>index 78f7098..219f1a9 100644
>--- a/ext/sndfile/gstsfsink.c
>+++ b/ext/sndfile/gstsfsink.c
>@@ -433,9 +433,7 @@ paused:
>     if (result == GST_FLOW_UNEXPECTED) {
>       gst_pad_send_event (pad, gst_event_new_eos ());
>     } else if (result < GST_FLOW_UNEXPECTED || result == GST_FLOW_NOT_LINKED) {
>-      GST_ELEMENT_ERROR (basesink, STREAM, FAILED,
>-          (_("Internal data stream error.")),
>-          ("stream stopped, reason %s", gst_flow_get_name (result)));
>+      GST_ELEMENT_FLOW_ERROR (basesink, result);
>       gst_pad_send_event (pad, gst_event_new_eos ());
>     }
>     gst_object_unref (this);
>diff --git a/ext/teletextdec/gstteletextdec.c b/ext/teletextdec/gstteletextdec.c
>index 5909a76..7f8a8a6 100644
>--- a/ext/teletextdec/gstteletextdec.c
>+++ b/ext/teletextdec/gstteletextdec.c
>@@ -743,9 +743,7 @@ error:
>   {
>     if (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED
>         && ret != GST_FLOW_FLUSHING) {
>-      GST_ELEMENT_ERROR (teletext, STREAM, FAILED,
>-          ("Internal data stream error."), ("stream stopped, reason %s",
>-              gst_flow_get_name (ret)));
>+      GST_ELEMENT_FLOW_ERROR (teletext, ret);
>       return GST_FLOW_ERROR;
>     }
>     return ret;
>diff --git a/ext/timidity/gsttimidity.c b/ext/timidity/gsttimidity.c
>index f7af843..2078694 100644
>--- a/ext/timidity/gsttimidity.c
>+++ b/ext/timidity/gsttimidity.c
>@@ -743,9 +743,7 @@ eos:
>   }
> error:
>   {
>-    GST_ELEMENT_ERROR (timidity, STREAM, FAILED,
>-        ("Internal data stream error"),
>-        ("Streaming stopped, reason %s", gst_flow_get_name (ret)));
>+    GST_ELEMENT_FLOW_ERROR (timidity, ret);
>     gst_pad_push_event (timidity->srcpad, gst_event_new_eos ());
>     goto paused;
>   }
>diff --git a/ext/timidity/gstwildmidi.c b/ext/timidity/gstwildmidi.c
>index 3e82ca2..ef4cc34 100644
>--- a/ext/timidity/gstwildmidi.c
>+++ b/ext/timidity/gstwildmidi.c
>@@ -898,9 +898,7 @@ pause:
>       event = gst_event_new_eos ();
>       /* for fatal errors we post an error message, post the error
>        * first so the app knows about the error first. */
>-      GST_ELEMENT_ERROR (wildmidi, STREAM, FAILED,
>-          ("Internal data flow error."),
>-          ("streaming task paused, reason %s (%d)", reason, ret));
>+      GST_ELEMENT_FLOW_ERROR (wildmidi, ret);
>       gst_pad_push_event (wildmidi->srcpad, event);
>     }
>   }
>diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
>index ea13658..f04689a 100644
>--- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
>+++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
>@@ -2227,8 +2227,7 @@ _src_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
>     gboolean finished = FALSE;
> 
>     if (ret < GST_FLOW_EOS) {
>-      GST_ELEMENT_ERROR (demux, STREAM, FAILED, (NULL),
>-          ("stream stopped, reason %s", gst_flow_get_name (ret)));
>+      GST_ELEMENT_FLOW_ERROR (demux, ret);
> 
>       /* TODO push this on all pads */
>       gst_pad_push_event (stream->pad, gst_event_new_eos ());
>@@ -3282,13 +3281,15 @@ gst_adaptive_demux_stream_download_loop (GstAdaptiveDemuxStream * stream)
>       break;
> 
>     case GST_FLOW_NOT_LINKED:
>+    {
>+      GstFlowReturn ret;
>       gst_task_stop (stream->download_task);
>-      if (gst_adaptive_demux_combine_flows (demux)
>-          == GST_FLOW_NOT_LINKED) {
>-        GST_ELEMENT_ERROR (demux, STREAM, FAILED,
>-            (_("Internal data stream error.")), ("stream stopped, reason %s",
>-                gst_flow_get_name (GST_FLOW_NOT_LINKED)));
>+
>+      ret = gst_adaptive_demux_combine_flows (demux);
>+      if (ret == GST_FLOW_NOT_LINKED) {
>+        GST_ELEMENT_FLOW_ERROR (demux, ret);
>       }
>+    }
>       break;
> 
>     case GST_FLOW_FLUSHING:{
>diff --git a/gst/aiff/aiffparse.c b/gst/aiff/aiffparse.c
>index 194857b..faa2647 100644
>--- a/gst/aiff/aiffparse.c
>+++ b/gst/aiff/aiffparse.c
>@@ -1527,9 +1527,7 @@ pause:
>     } else if (ret < GST_FLOW_EOS || ret == GST_FLOW_NOT_LINKED) {
>       /* for fatal errors we post an error message, post the error
>        * first so the app knows about the error first. */
>-      GST_ELEMENT_ERROR (aiff, STREAM, FAILED,
>-          (_("Internal data flow error.")),
>-          ("streaming task paused, reason %s (%d)", reason, ret));
>+      GST_ELEMENT_FLOW_ERROR (aiff, ret);
>       gst_pad_push_event (aiff->srcpad, gst_event_new_eos ());
>     }
>     return;
>diff --git a/gst/midi/midiparse.c b/gst/midi/midiparse.c
>index d52539b..d58ea3f 100644
>--- a/gst/midi/midiparse.c
>+++ b/gst/midi/midiparse.c
>@@ -1282,9 +1282,7 @@ pause:
>       event = gst_event_new_eos ();
>       /* for fatal errors we post an error message, post the error
>        * first so the app knows about the error first. */
>-      GST_ELEMENT_ERROR (midiparse, STREAM, FAILED,
>-          ("Internal data flow error."),
>-          ("streaming task paused, reason %s (%d)", reason, ret));
>+      GST_ELEMENT_FLOW_ERROR (midiparse, ret);
>       gst_pad_push_event (midiparse->srcpad, event);
>     }
>   }
>diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c
>index 68985b2..b608db8 100644
>--- a/gst/mpegdemux/gstmpegdemux.c
>+++ b/gst/mpegdemux/gstmpegdemux.c
>@@ -3005,9 +3005,7 @@ pause:
>         }
>       }
>     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
>-      GST_ELEMENT_ERROR (demux, STREAM, FAILED,
>-          ("Internal data stream error."),
>-          ("stream stopped, reason %s", reason));
>+      GST_ELEMENT_FLOW_ERROR (demux, ret);
>       gst_ps_demux_send_event (demux, gst_event_new_eos ());
>     }
> 
>diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c
>index cf69a18..e736f9b 100644
>--- a/gst/mpegtsdemux/mpegtsbase.c
>+++ b/gst/mpegtsdemux/mpegtsbase.c
>@@ -1382,9 +1382,7 @@ error:
>             (_("Internal data stream error.")),
>             ("No program activated before EOS"));
>     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
>-      GST_ELEMENT_ERROR (base, STREAM, FAILED,
>-          (_("Internal data stream error.")),
>-          ("stream stopped, reason %s", reason));
>+      GST_ELEMENT_FLOW_ERROR (base, ret);
>       GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, gst_event_new_eos ());
>     }
>     gst_pad_pause_task (base->sinkpad);
>diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c
>index ca09cc7..823b1b6 100644
>--- a/gst/mxf/mxfdemux.c
>+++ b/gst/mxf/mxfdemux.c
>@@ -3098,9 +3098,7 @@ pause:
>     } else if (flow == GST_FLOW_NOT_LINKED || flow < GST_FLOW_EOS) {
>       GstEvent *e;
> 
>-      GST_ELEMENT_ERROR (demux, STREAM, FAILED,
>-          ("Internal data stream error."),
>-          ("stream stopped, reason %s", reason));
>+      GST_ELEMENT_FLOW_ERROR (demux, flow);
>       e = gst_event_new_eos ();
>       gst_event_set_seqnum (e, demux->seqnum);
>       gst_mxf_demux_push_src_event (demux, e);
>diff --git a/gst/nuvdemux/gstnuvdemux.c b/gst/nuvdemux/gstnuvdemux.c
>index b98d35d..88968f0 100644
>--- a/gst/nuvdemux/gstnuvdemux.c
>+++ b/gst/nuvdemux/gstnuvdemux.c
>@@ -729,9 +729,7 @@ pause:
>   if (res == GST_FLOW_UNEXPECTED) {
>     gst_nuv_demux_send_eos (nuv);
>   } else if (res == GST_FLOW_NOT_LINKED || res < GST_FLOW_UNEXPECTED) {
>-    GST_ELEMENT_ERROR (nuv, STREAM, FAILED,
>-        (_("Internal data stream error.")),
>-        ("streaming stopped, reason %s", gst_flow_get_name (res)));
>+    GST_ELEMENT_FLOW_ERROR (nuv, res);
> 
>     gst_nuv_demux_send_eos (nuv);
>   }
>diff --git a/gst/tta/gstttaparse.c b/gst/tta/gstttaparse.c
>index 5479350..485a197 100644
>--- a/gst/tta/gstttaparse.c
>+++ b/gst/tta/gstttaparse.c
>@@ -468,9 +468,7 @@ pause:
>   if (ret == GST_FLOW_UNEXPECTED) {
>     gst_pad_push_event (ttaparse->srcpad, gst_event_new_eos ());
>   } else if (ret < GST_FLOW_UNEXPECTED || ret == GST_FLOW_NOT_LINKED) {
>-    GST_ELEMENT_ERROR (ttaparse, STREAM, FAILED,
>-        ("Internal data stream error."),
>-        ("streaming stopped, reason %s", gst_flow_get_name (ret)));
>+    GST_ELEMENT_FLOW_ERROR (ttaparse, ret);
>     gst_pad_push_event (ttaparse->srcpad, gst_event_new_eos ());
>   }
> }
>diff --git a/sys/androidmedia/gstamcaudiodec.c b/sys/androidmedia/gstamcaudiodec.c
>index 9a34c37..49c8c60 100644
>--- a/sys/androidmedia/gstamcaudiodec.c
>+++ b/sys/androidmedia/gstamcaudiodec.c
>@@ -670,9 +670,7 @@ flow_error:
>           gst_event_new_eos ());
>       gst_pad_pause_task (GST_AUDIO_DECODER_SRC_PAD (self));
>     } else if (flow_ret < GST_FLOW_EOS) {
>-      GST_ELEMENT_ERROR (self, STREAM, FAILED,
>-          ("Internal data stream error."), ("stream stopped, reason %s",
>-              gst_flow_get_name (flow_ret)));
>+      GST_ELEMENT_FLOW_ERROR (self, flow_ret);
>       gst_pad_push_event (GST_AUDIO_DECODER_SRC_PAD (self),
>           gst_event_new_eos ());
>       gst_pad_pause_task (GST_AUDIO_DECODER_SRC_PAD (self));
>diff --git a/sys/androidmedia/gstamcvideodec.c b/sys/androidmedia/gstamcvideodec.c
>index 397b585..bd772b7 100644
>--- a/sys/androidmedia/gstamcvideodec.c
>+++ b/sys/androidmedia/gstamcvideodec.c
>@@ -1590,9 +1590,7 @@ flow_error:
>           gst_event_new_eos ());
>       gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
>     } else if (flow_ret < GST_FLOW_EOS) {
>-      GST_ELEMENT_ERROR (self, STREAM, FAILED,
>-          ("Internal data stream error."), ("stream stopped, reason %s",
>-              gst_flow_get_name (flow_ret)));
>+      GST_ELEMENT_FLOW_ERROR (self, flow_ret);
>       gst_pad_push_event (GST_VIDEO_DECODER_SRC_PAD (self),
>           gst_event_new_eos ());
>       gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
>diff --git a/sys/androidmedia/gstamcvideoenc.c b/sys/androidmedia/gstamcvideoenc.c
>index 136df41..1742d44 100644
>--- a/sys/androidmedia/gstamcvideoenc.c
>+++ b/sys/androidmedia/gstamcvideoenc.c
>@@ -1129,9 +1129,7 @@ flow_error:
>           gst_event_new_eos ());
>       gst_pad_pause_task (GST_VIDEO_ENCODER_SRC_PAD (self));
>     } else if (flow_ret == GST_FLOW_NOT_LINKED || flow_ret < GST_FLOW_EOS) {
>-      GST_ELEMENT_ERROR (self, STREAM, FAILED,
>-          ("Internal data stream error."), ("stream stopped, reason %s",
>-              gst_flow_get_name (flow_ret)));
>+      GST_ELEMENT_FLOW_ERROR (self, flow_ret);
>       gst_pad_push_event (GST_VIDEO_ENCODER_SRC_PAD (self),
>           gst_event_new_eos ());
>       gst_pad_pause_task (GST_VIDEO_ENCODER_SRC_PAD (self));
>diff --git a/sys/applemedia/avfassetsrc.m b/sys/applemedia/avfassetsrc.m
>index e589cf3..1795d09 100644
>--- a/sys/applemedia/avfassetsrc.m
>+++ b/sys/applemedia/avfassetsrc.m
>@@ -535,8 +535,7 @@ gst_avf_asset_src_read_data (GstAVFAssetSrc *self, GstPad *pad,
>     }
> 
>     if (combined_ret != GST_FLOW_OK) {
>-      GST_ELEMENT_ERROR (self, STREAM, FAILED, ("Internal data stream error."),
>-          ("stream stopped reason %s", gst_flow_get_name (ret)));
>+      GST_ELEMENT_FLOW_ERROR (self, ret);
>     }
> 
>     gst_pad_pause_task (pad);
>-- 
>2.9.3

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list