From a4f97be1a9ed80f47ca93ebfc5faaaba658250c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Fri, 20 Jan 2012 16:29:09 +0200 Subject: [PATCH] hls: Reset the AVIOContext when seeking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This avoids reading any old data in the AVIOContext buffer after the seek, and indicates to the mpegts demuxer that we've seeked, avoiding continuity check errors. Signed-off-by: Martin Storsjö --- libavformat/hls.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/hls.c b/libavformat/hls.c index c4046f29c6..e876735468 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -708,6 +708,10 @@ static int hls_read_seek(AVFormatContext *s, int stream_index, av_free_packet(&var->pkt); reset_packet(&var->pkt); var->pb.eof_reached = 0; + /* Clear any buffered data */ + var->pb.buf_end = var->pb.buf_ptr = var->pb.buffer; + /* Reset the pos, to let the mpegts demuxer know we've seeked. */ + var->pb.pos = 0; /* Locate the segment that contains the target timestamp */ for (j = 0; j < var->n_segments; j++) {