mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
avformat/aviobuf: do not allocate a new buffer in ffio_ensure_seekback if not needed
Let's move unread data to the start of the old buffer instead. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
da74a74061
commit
84d8815499
@ -1015,7 +1015,10 @@ int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size)
|
||||
return 0;
|
||||
av_assert0(!s->write_flag);
|
||||
|
||||
buf_size = FFMAX(buf_size, s->buffer_size);
|
||||
if (buf_size <= s->buffer_size) {
|
||||
update_checksum(s);
|
||||
memmove(s->buffer, s->buf_ptr, filled);
|
||||
} else {
|
||||
buffer = av_malloc(buf_size);
|
||||
if (!buffer)
|
||||
return AVERROR(ENOMEM);
|
||||
@ -1024,6 +1027,7 @@ int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size)
|
||||
av_free(s->buffer);
|
||||
s->buffer = buffer;
|
||||
s->buffer_size = buf_size;
|
||||
}
|
||||
s->buf_ptr = s->buffer;
|
||||
s->buf_end = s->buffer + filled;
|
||||
s->checksum_ptr = s->buffer;
|
||||
|
Loading…
x
Reference in New Issue
Block a user