PR #20985 opened by GXTX
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20985
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20985.patch

Fixes: #20982

This doesn't appear with every XMV.


>From 797d63a4d77ab06dafedb4d76a8393481bcc7b2f Mon Sep 17 00:00:00 2001
From: wutno <[email protected]>
Date: Thu, 20 Nov 2025 16:19:49 -0500
Subject: [PATCH] avformat/xmv: Handle zero sized packet at end of file

---
 libavformat/xmv.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libavformat/xmv.c b/libavformat/xmv.c
index ed59f7b85b..63ae4a05a7 100644
--- a/libavformat/xmv.c
+++ b/libavformat/xmv.c
@@ -417,6 +417,12 @@ static int xmv_fetch_new_packet(AVFormatContext *s)
     /* Seek to it */
     xmv->this_packet_offset = xmv->next_packet_offset;
     if (avio_seek(pb, xmv->this_packet_offset, SEEK_SET) != 
xmv->this_packet_offset)
+        /* It's possible the packet we're about to work on has no size. This 
can
+         * happen when it's the last packet of the XMV. So, let's check if 
we're
+         * at the end of the file again and gracefully close out.
+         */
+        if (xmv->this_packet_offset == xmv->next_packet_offset)
+            return AVERROR_EOF;
         return AVERROR(EIO);
 
     /* Update the size */
-- 
2.49.1

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to