summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@collabora.com>2013-05-23 14:57:49 +0200
committerEdward Hervey <edward@collabora.com>2013-05-23 14:59:34 +0200
commitce441cbff780d004267666c74d1f2077987754ca (patch)
tree24e90d5c25e9fa08c92a6ec56e8a83f0a188cc60
parent7837cab44e06017bb76924e253114d6c923fb983 (diff)
downloadgstreamer-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.c6
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.")),