diff --git a/gst/mpegdemux/gstmpegtsdemux.c b/gst/mpegdemux/gstmpegtsdemux.c index f220896b02..cf990b0923 100644 --- a/gst/mpegdemux/gstmpegtsdemux.c +++ b/gst/mpegdemux/gstmpegtsdemux.c @@ -2543,6 +2543,7 @@ gst_mpegts_demux_src_event (GstPad * pad, GstEvent * event) static void gst_mpegts_demux_flush (GstMpegTSDemux * demux, gboolean discard) { + gint i; GstMpegTSStream *PCR_stream; GstMpegTSStream *PMT_stream; @@ -2568,6 +2569,15 @@ gst_mpegts_demux_flush (GstMpegTSDemux * demux, gboolean discard) PCR_stream->last_PCR = -1; + /* Reset last time of all streams */ + for (i = 0; i < MPEGTS_MAX_PID + 1; i++) { + GstMpegTSStream *stream = demux->streams[i]; + + if (stream) + stream->last_time = 0; + } + + beach: return; }