mirror of
https://github.com/mpv-player/mpv
synced 2025-03-21 18:57:35 +00:00
dvd: flush buffers properly on seek
Suggested by tholin on github issue #882. This is not entirely clean, but the fields we're accessing might be considered internal to libavformat. On the other hand, existence of the fields is guaranteed by the ABI, and nothing in the libavformat doxygen suggestes they're not allowed to be accessed. CC: @mpv-player/stable
This commit is contained in:
parent
338004bcfc
commit
0cc3594623
@ -983,11 +983,12 @@ redo:
|
||||
* call the new API instead of relying on av_seek_frame() to do this
|
||||
* for us.
|
||||
*/
|
||||
stream_drop_buffers(demuxer->stream);
|
||||
avio_flush(priv->avfc->pb);
|
||||
av_seek_frame(priv->avfc, 0, stream_tell(demuxer->stream),
|
||||
AVSEEK_FLAG_BYTE);
|
||||
avio_flush(priv->avfc->pb);
|
||||
// avio_flush() is designed for write-only streams, and does the wrong
|
||||
// thing when reading. Flush it manually instead.
|
||||
priv->avfc->pb->buf_ptr = priv->avfc->pb->buf_end;
|
||||
stream_drop_buffers(demuxer->stream);
|
||||
return DEMUXER_CTRL_OK;
|
||||
default:
|
||||
return DEMUXER_CTRL_NOTIMPL;
|
||||
|
Loading…
Reference in New Issue
Block a user