avformat/hls: flush the subdemuxer when seeking

Since we are basically seeking the AVIOContext under the subdemuxer, we
need to flush the subdemuxer to avoid old packets from being read from
the packet queue after the seek.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
This commit is contained in:
Anssi Hannula 2014-01-03 13:52:20 +02:00
parent 9aa0606e87
commit f29cb45bf2

View File

@ -1629,6 +1629,8 @@ static int hls_read_seek(AVFormatContext *s, int stream_index,
pls->pb.buf_end = pls->pb.buf_ptr = pls->pb.buffer; pls->pb.buf_end = pls->pb.buf_ptr = pls->pb.buffer;
/* Reset the pos, to let the mpegts demuxer know we've seeked. */ /* Reset the pos, to let the mpegts demuxer know we've seeked. */
pls->pb.pos = 0; pls->pb.pos = 0;
/* Flush the packet queue of the subdemuxer. */
ff_read_frame_flush(pls->ctx);
pls->seek_timestamp = seek_timestamp; pls->seek_timestamp = seek_timestamp;
pls->seek_flags = flags; pls->seek_flags = flags;