From 3c74ffb01ac3aa567d166362237117a6ca7c0775 Mon Sep 17 00:00:00 2001 From: Limin Wang Date: Fri, 3 Dec 2021 12:07:34 +0800 Subject: avformat/aviobuf: check if read_packet() exist before read_packet_wrapper() without it, read_packet_wrapper() will return AVERROR(EINVAL) and avio_read will be failed. Signed-off-by: Limin Wang --- libavformat/aviobuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 5da4dea7b6..14688a2262 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -646,7 +646,7 @@ int avio_read(AVIOContext *s, unsigned char *buf, int size) while (size > 0) { len = FFMIN(s->buf_end - s->buf_ptr, size); if (len == 0 || s->write_flag) { - if((s->direct || size > s->buffer_size) && !s->update_checksum) { + if((s->direct || size > s->buffer_size) && !s->update_checksum && s->read_packet) { // bypass the buffer and read data directly into buf len = read_packet_wrapper(s, buf, size); if (len == AVERROR_EOF) { -- cgit v1.2.3