ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Fri Aug 14 00:09:43 
2020 -0300| [a762fd2c1b7fe4f0140ed297321b307f9527f929] | committer: James Almer

avformat/av1dec: fix return value on some code paths

If avio_read() returns a value of bytes read that's lower than the
expected, return an error instead. And when there are zero bytes in
the prefetch buffer, return 0 in order for the frame merge bsf to
drain all potentially buffered packets.

Missed by mistake when amending and committing 9a7bdb6d71.

Signed-off-by: James Almer <jamr...@gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a762fd2c1b7fe4f0140ed297321b307f9527f929
---

 libavformat/av1dec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c
index ee5b0fd0fc..0693e40ac1 100644
--- a/libavformat/av1dec.c
+++ b/libavformat/av1dec.c
@@ -411,7 +411,7 @@ static int obu_read_data(AVFormatContext *s, AVPacket *pkt, 
int len)
         ret = avio_read(s->pb, pkt->data + size, left);
         if (ret != left) {
             av_log(c, AV_LOG_ERROR, "Failed to read %d frome file\n", left);
-            return ret;
+            return ret < 0 ? ret : AVERROR_INVALIDDATA;
         }
     }
     return 0;
@@ -426,7 +426,7 @@ static int obu_get_packet(AVFormatContext *s, AVPacket *pkt)
 
     ret = obu_prefetch(s, header);
     if (!ret)
-        return AVERROR(EOF);
+        return 0;
 
     ret = read_obu_with_size(header, ret, &obu_size, &type);
     if (ret < 0) {

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to