Commit a956840c authored by Ganesh Ajjanagadde's avatar Ganesh Ajjanagadde

ffmpeg: check return value of avio_closep for progress report

avio_closep is not guaranteed to succeed, and its return value can
contain information regarding failure of preceding writes and silent
loss of data (man 2 close, man fclose). Users should know when the
progress was not successfully logged, and so a diagnostic is printed
here.
Reviewed-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
Reviewed-by: 's avatarJames Almer <jamrial@gmail.com>
Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
parent da3c3c44
...@@ -1501,6 +1501,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti ...@@ -1501,6 +1501,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
static int64_t last_time = -1; static int64_t last_time = -1;
static int qp_histogram[52]; static int qp_histogram[52];
int hours, mins, secs, us; int hours, mins, secs, us;
int ret;
float t; float t;
if (!print_stats && !is_last_report && !progress_avio) if (!print_stats && !is_last_report && !progress_avio)
...@@ -1667,7 +1668,9 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti ...@@ -1667,7 +1668,9 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
avio_flush(progress_avio); avio_flush(progress_avio);
av_bprint_finalize(&buf_script, NULL); av_bprint_finalize(&buf_script, NULL);
if (is_last_report) { if (is_last_report) {
avio_closep(&progress_avio); if ((ret = avio_closep(&progress_avio)) < 0)
av_log(NULL, AV_LOG_ERROR,
"Error closing progress log, loss of information possible: %s\n", av_err2str(ret));
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment