[FFmpeg-cvslog] fftools/ffmpeg: move closing the input file into a separate function
Anton Khirnov
git at videolan.org
Tue Oct 25 12:16:07 EEST 2022
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Mon Oct 17 11:37:45 2022 +0200| [295848bacb120da0fbe74b7f98888c328ac8dd44] | committer: Anton Khirnov
fftools/ffmpeg: move closing the input file into a separate function
For now this is just closing the format context and freeing InputFile,
but will contain more in the future.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=295848bacb120da0fbe74b7f98888c328ac8dd44
---
fftools/ffmpeg.c | 7 +++----
fftools/ffmpeg.h | 1 +
fftools/ffmpeg_demux.c | 12 ++++++++++++
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index f8b02a8871..842ed2fa66 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -556,10 +556,9 @@ static void ffmpeg_cleanup(int ret)
of_close(&output_files[i]);
free_input_threads();
- for (i = 0; i < nb_input_files; i++) {
- avformat_close_input(&input_files[i]->ctx);
- av_freep(&input_files[i]);
- }
+ for (i = 0; i < nb_input_files; i++)
+ ifile_close(&input_files[i]);
+
for (i = 0; i < nb_input_streams; i++) {
InputStream *ist = input_streams[i];
diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index ab8b9018ca..1fd29fb0db 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -758,6 +758,7 @@ AVChapter * const *
of_get_chapters(OutputFile *of, unsigned int *nb_chapters);
int ifile_open(OptionsContext *o, const char *filename);
+void ifile_close(InputFile **f);
/**
* Get next input packet from the demuxer.
diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c
index 53a497da66..880e56d2e3 100644
--- a/fftools/ffmpeg_demux.c
+++ b/fftools/ffmpeg_demux.c
@@ -439,6 +439,18 @@ int ifile_get_packet(InputFile *f, AVPacket **pkt)
return 0;
}
+void ifile_close(InputFile **pf)
+{
+ InputFile *f = *pf;
+
+ if (!f)
+ return;
+
+ avformat_close_input(&f->ctx);
+
+ av_freep(pf);
+}
+
static const AVCodec *choose_decoder(OptionsContext *o, AVFormatContext *s, AVStream *st,
enum HWAccelID hwaccel_id, enum AVHWDeviceType hwaccel_device_type)
More information about the ffmpeg-cvslog
mailing list