summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Bouron <matthieu.bouron@collabora.com>2014-10-24 16:52:42 +0200
committerEdward Hervey <bilboed@bilboed.com>2014-10-30 16:42:41 +0100
commitcdd02e9b929333a1f0f492626c3efccf562e67a3 (patch)
tree4c202d7e08a229d3370b482b47b75f3ee94419d8
parent8d41da18848ff4f56af283496179106e163bcba8 (diff)
downloadgstreamer-plugins-bad-cdd02e9b929333a1f0f492626c3efccf562e67a3.tar.gz
mpegtsbase: do not remove programs on EOS
As a consequence, tsdemux won't remove its pads anymore on EOS. Fixes the case when mpegtsbase is not able to process new packets after EOS as the corresponding pids aren't known anymore because the programs were removed and the pes/psi were kept, preventing the PAT to be parsed again. https://bugzilla.gnome.org/show_bug.cgi?id=738695 Conflicts: gst/mpegtsdemux/mpegtsbase.c
-rw-r--r--gst/mpegtsdemux/mpegtsbase.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c
index 0ca72538c..9ec977a73 100644
--- a/gst/mpegtsdemux/mpegtsbase.c
+++ b/gst/mpegtsdemux/mpegtsbase.c
@@ -1016,15 +1016,6 @@ remove_each_program (gpointer key, MpegTSBaseProgram * program,
return TRUE;
}
-static gboolean
-gst_mpegts_base_handle_eos (MpegTSBase * base)
-{
- g_hash_table_foreach_remove (base->programs, (GHRFunc) remove_each_program,
- base);
- /* finally remove */
- return TRUE;
-}
-
static inline GstFlowReturn
mpegts_base_drain (MpegTSBase * base)
{
@@ -1075,10 +1066,6 @@ mpegts_base_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
case GST_EVENT_STREAM_START:
gst_event_unref (event);
break;
- case GST_EVENT_EOS:
- res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event);
- res = gst_mpegts_base_handle_eos (base);
- break;
case GST_EVENT_CAPS:
/* FIXME, do something */
gst_event_unref (event);