diff options
author | Marton Balint <cus@passwd.hu> | 2021-11-30 01:18:14 +0100 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2021-12-12 00:32:20 +0100 |
commit | 8d66a07d657ba7ed8c5e95345d4eec770b55e438 (patch) | |
tree | 6e13b8456792365f1e13e592cea9a9ed079e9ca3 /fftools | |
parent | 8a40cfa4dab461643f4f93f3340c897d708ea221 (diff) |
fftools/ffmpeg: close output files before cleanup
This allows us to check the return value of avio_closep().
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'fftools')
-rw-r--r-- | fftools/ffmpeg.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 0f1834cdbe..bdeff9a12e 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -4699,7 +4699,7 @@ static int transcode(void) term_exit(); - /* write the trailer if needed and close file */ + /* write the trailer if needed */ for (i = 0; i < nb_output_files; i++) { os = output_files[i]->ctx; if (!output_files[i]->header_written) { @@ -4719,6 +4719,18 @@ static int transcode(void) /* dump report by using the first video and audio streams */ print_report(1, timer_start, av_gettime_relative()); + /* close the output files */ + for (i = 0; i < nb_output_files; i++) { + os = output_files[i]->ctx; + if (os && os->oformat && !(os->oformat->flags & AVFMT_NOFILE)) { + if ((ret = avio_closep(&os->pb)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Error closing file %s: %s\n", os->url, av_err2str(ret)); + if (exit_on_error) + exit_program(1); + } + } + } + /* close each encoder */ for (i = 0; i < nb_output_streams; i++) { ost = output_streams[i]; |