1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-04 22:03:09 +02:00

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@gmail.com>
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Kacper Michajłow
2025-05-17 05:50:28 +02:00
committed by Michael Niedermayer
parent 5030564376
commit 1a7e802c8f

View File

@ -383,11 +383,10 @@ void avformat_close_input(AVFormatContext **ps)
if (ffifmt(s->iformat)->read_close) if (ffifmt(s->iformat)->read_close)
ffifmt(s->iformat)->read_close(s); ffifmt(s->iformat)->read_close(s);
ff_format_io_close(s, &pb);
avformat_free_context(s); avformat_free_context(s);
*ps = NULL; *ps = NULL;
avio_close(pb);
} }
static void force_codec_ids(AVFormatContext *s, AVStream *st) static void force_codec_ids(AVFormatContext *s, AVStream *st)