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]
