From ca3146a2cd8be76efd2ce802ca1d8e85b6fa127b Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Sat, 30 Mar 2013 13:39:49 +0100 Subject: [PATCH] tsparse: Ensure segment events are forwarded We skip them for tsdemux though (recreated later) Fixes #690949 --- gst/mpegtsdemux/mpegtsbase.c | 2 +- gst/mpegtsdemux/tsdemux.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c index 2892f7e113..2a4252418b 100644 --- a/gst/mpegtsdemux/mpegtsbase.c +++ b/gst/mpegtsdemux/mpegtsbase.c @@ -1348,7 +1348,7 @@ mpegts_base_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) base->packetizer->calculate_offset = TRUE; base->packetizer->calculate_skew = FALSE; } - gst_event_unref (event); + res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event); break; case GST_EVENT_STREAM_START: gst_event_unref (event); diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c index 05bd83dfbd..50db5acdc4 100644 --- a/gst/mpegtsdemux/tsdemux.c +++ b/gst/mpegtsdemux/tsdemux.c @@ -580,6 +580,12 @@ push_event (MpegTSBase * base, GstEvent * event) GstTSDemux *demux = (GstTSDemux *) base; GList *tmp; + if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) { + GST_DEBUG_OBJECT (base, "Ignoring segment event (recreated later)"); + gst_event_unref (event); + return TRUE; + } + if (G_UNLIKELY (demux->program == NULL)) { gst_event_unref (event); return FALSE;