avformat/aviobuf: check if requested seekback buffer is already read

Existing code did not check if the requested seekback buffer is
already read entirely. In this case, nothing has to be done to guarantee
seekback.

Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2020-09-26 19:20:50 +02:00
parent 74c70efd12
commit 6d972beb23
1 changed files with 3 additions and 0 deletions

View File

@ -999,6 +999,9 @@ int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size)
int filled = s->buf_end - s->buffer;
ptrdiff_t checksum_ptr_offset = s->checksum_ptr ? s->checksum_ptr - s->buffer : -1;
if (buf_size <= s->buf_end - s->buf_ptr)
return 0;
buf_size += s->buf_ptr - s->buffer + max_buffer_size;
if (buf_size < filled || s->seekable || !s->read_packet)