Index: libmpdemux/demux_lavf.c =================================================================== --- libmpdemux/demux_lavf.c (revision 30976) +++ libmpdemux/demux_lavf.c (working copy) @@ -123,6 +123,16 @@ return pos - stream->start_pos; } +static int mp_read_seek(void *opaque, int stream_idx, int64_t ts, int flags) { + stream_t *stream = opaque; + int ret; + + ret = av_url_read_seek(stream->priv, stream_idx, ts, flags); + if (ret >= 0) + stream_reset(stream); + return ret; +} + static void list_formats(void) { AVInputFormat *fmt; mp_msg(MSGT_DEMUX, MSGL_INFO, "Available lavf input formats:\n"); @@ -483,6 +493,7 @@ priv->pb = av_alloc_put_byte(priv->buffer, BIO_BUFFER_SIZE, 0, demuxer->stream, mp_read, NULL, mp_seek); + priv->pb->read_seek = mp_read_seek; priv->pb->is_streamed = !demuxer->stream->end_pos || (demuxer->stream->flags & MP_STREAM_SEEK) != MP_STREAM_SEEK; if(av_open_input_stream(&avfc, priv->pb, mp_filename, priv->avif, &ap)<0){