[PR] [release/7.1] avformat/demux: use io_close2 when closing avformat (PR #23639)

Jan Ekström via ffmpeg-devel <[email protected]>
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178274115765.59.12227535527490462652@29965ddac10e>
PR #23639 opened by Jan Ekström (jeeb)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23639
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23639.patch

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 <[email protected]>
Reviewed-by: Andreas Rheinhardt <[email protected]>
Signed-off-by: Michael Niedermayer <[email protected]>
(cherry picked from commit 1a7e802c8f970e76807f08c3d3fb3513ae5a4882)

# Summary of changes

Briefly describe what this PR does and why.

<!--
If this PR requires new FATE test samples, attach them to the PR and
list their target paths below (relative to the fate-suite root).

Attached filenames must match the sample's filename:

```fate-samples
# e.g. vorbis/new-sample.ogg
```
-->



From 998de74adf861c26df557e220996faa959419549 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <[email protected]>
Date: Sat, 17 May 2025 05:50:28 +0200
Subject: [PATCH] avformat/demux: use io_close2 when closing avfromat
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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 <[email protected]>
Reviewed-by: Andreas Rheinhardt <[email protected]>
Signed-off-by: Michael Niedermayer <[email protected]>
(cherry picked from commit 1a7e802c8f970e76807f08c3d3fb3513ae5a4882)
---
 libavformat/demux.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libavformat/demux.c b/libavformat/demux.c
index df4fc3461e..9be5651f76 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -389,11 +389,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)
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.