From: Edward Hervey Date: Sat, 8 Oct 2016 12:08:06 +0000 (+0200) Subject: mpegts: Also clear packetizer on TIME DISCONT X-Git-Tag: 1.19.3~507^2~6036 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb36608ccd95004b3c2b38d6451c009fbad899b6;p=platform%2Fupstream%2Fgstreamer.git mpegts: Also clear packetizer on TIME DISCONT When dealing with TIME-based input, the incoming stream could have potentially changed completely. In order to check whether it did or not, we need to re-check all sections (PAT, PMT...). If it didn't, we will keep using the existing streams/pad, and if it did we will act as if there was a program switch. Fixes HLS streaming with decodebin3/playbin3 --- diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c index 659faad..4aa01e3 100644 --- a/gst/mpegtsdemux/mpegtsbase.c +++ b/gst/mpegtsdemux/mpegtsbase.c @@ -1164,9 +1164,10 @@ mpegts_base_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) * we want to drop all previous observations (hard:TRUE) from * the packetizer */ if (base->mode == BASE_MODE_PUSHING - && base->segment.format == GST_FORMAT_TIME) + && base->segment.format == GST_FORMAT_TIME) { mpegts_packetizer_flush (base->packetizer, TRUE); - else + mpegts_packetizer_clear (base->packetizer); + } else mpegts_packetizer_flush (base->packetizer, FALSE); }