GNOME Bugzilla – Bug 738695
mpegtsbase: do not remove programs on EOS
Last modified: 2014-10-30 15:44:56 UTC
Allow mpegtsbase to process new data after reaching EOS.
Created attachment 288759 [details] [review] mpegtsbase: reset demuxer on EOS
Review of attachment 288759 [details] [review]: This does not seem correct. _reset() will call klass->reset() as before, which in the case of tsdemux will reset the group id and send a new stream-start event. That's not how it should be after EOS.
Created attachment 289283 [details] [review] mpegtsbase: do not 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.
Pushed to master and 1.4 It's actually more critical than that, since you couldn't even send any events to the demuxer (like ... SEEK) after EOS. commit cdd02e9b929333a1f0f492626c3efccf562e67a3 Author: Matthieu Bouron <matthieu.bouron@collabora.com> Date: Fri Oct 24 16:52:42 2014 +0200 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