diff options
author | Edward Hervey <edward@collabora.com> | 2013-05-23 14:57:49 +0200 |
---|---|---|
committer | Edward Hervey <edward@collabora.com> | 2013-05-23 14:59:34 +0200 |
commit | ce441cbff780d004267666c74d1f2077987754ca (patch) | |
tree | 24e90d5c25e9fa08c92a6ec56e8a83f0a188cc60 | |
parent | 7837cab44e06017bb76924e253114d6c923fb983 (diff) | |
download | gstreamer-plugins-bad-ce441cbff780d004267666c74d1f2077987754ca.tar.gz |
mpegtsbase: Post an error message when EOS'ing without source pads
This ensures we don't "hang" when files can't be decoded, or contain
no valid streams.
-rw-r--r-- | gst/mpegtsdemux/mpegtsbase.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c index a21fad065..99215d789 100644 --- a/gst/mpegtsdemux/mpegtsbase.c +++ b/gst/mpegtsdemux/mpegtsbase.c @@ -1613,7 +1613,11 @@ error: const gchar *reason = gst_flow_get_name (ret); GST_DEBUG_OBJECT (base, "Pausing task, reason %s", reason); if (ret == GST_FLOW_EOS) { - GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, gst_event_new_eos ()); + if (!GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, + gst_event_new_eos ())) + GST_ELEMENT_ERROR (base, STREAM, FAILED, + (_("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.")), |