[FFmpeg-cvslog] avformat/psxstr: fix demuxing I/O error at EOF

aybe aybe git at videolan.org
Thu Jan 11 18:10:26 EET 2024


ffmpeg | branch: master | aybe aybe <aybe.one at hotmail.com> | Tue Jan  2 02:52:11 2024 +0000| [f89a6e7576f2099d1cf41e1418fecfb235c240ba] | committer: Michael Niedermayer

avformat/psxstr: fix demuxing I/O error at EOF

This second patch fixes the following error at the end of a .STR stream conversion:

[in#0/psxstr @ 0000000000681e80] Error during demuxing: I/O error

It's been a bit of trial and error as I've never used ffmpeg, but returning AVERROR_EOF appears to be the way to go (doesn't complain anymore).

Signed-off-by: aybe <aybe at users.noreply.github.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 libavformat/psxstr.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavformat/psxstr.c b/libavformat/psxstr.c
index 22867416d9..009699e288 100644
--- a/libavformat/psxstr.c
+++ b/libavformat/psxstr.c
@@ -166,8 +166,12 @@ static int str_read_packet(AVFormatContext *s,
     AVStream *st;
 
     while (1) {
+        int read = avio_read(pb, sector, RAW_CD_SECTOR_SIZE);
 
-        if (avio_read(pb, sector, RAW_CD_SECTOR_SIZE) != RAW_CD_SECTOR_SIZE)
+        if (read == AVERROR_EOF)
+            return AVERROR_EOF;
+
+        if (read != RAW_CD_SECTOR_SIZE)
             return AVERROR(EIO);
 
         channel = sector[0x11];



More information about the ffmpeg-cvslog mailing list