diff options
author | Matthieu Bouron <matthieu.bouron@collabora.com> | 2014-10-24 16:52:42 +0200 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2014-10-30 16:42:41 +0100 |
commit | cdd02e9b929333a1f0f492626c3efccf562e67a3 (patch) | |
tree | 4c202d7e08a229d3370b482b47b75f3ee94419d8 | |
parent | 8d41da18848ff4f56af283496179106e163bcba8 (diff) | |
download | gstreamer-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.c | 13 |
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); |