[FFmpeg-cvslog] avformat/demux: use io_close2 when closing avfromat

Kacper Michajłow git at videolan.org
Sat May 31 01:44:27 EEST 2025


ffmpeg | branch: master | Kacper Michajłow <kasper93 at gmail.com> | Sat May 17 05:50:28 2025 +0200| [1a7e802c8f970e76807f08c3d3fb3513ae5a4882] | committer: Michael Niedermayer

avformat/demux: use io_close2 when closing avfromat

It's not valid to call avio_close() on context that has not been open
with avio_open().

This fixes use of custom IO. (io_open / io_close2 callbacks)

Note that by default io_close2 is set to io_close2_default() which calls
avio_close(), so default case will work the same as before.

Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 libavformat/demux.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libavformat/demux.c b/libavformat/demux.c
index 2795863567..ecd4f40da9 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -383,11 +383,10 @@ void avformat_close_input(AVFormatContext **ps)
         if (ffifmt(s->iformat)->read_close)
             ffifmt(s->iformat)->read_close(s);
 
+    ff_format_io_close(s, &pb);
     avformat_free_context(s);
 
     *ps = NULL;
-
-    avio_close(pb);
 }
 
 static void force_codec_ids(AVFormatContext *s, AVStream *st)



More information about the ffmpeg-cvslog mailing list