mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2025-10-06 17:29:08 +08:00
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: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
This commit is contained in:
5
ffmpeg.c
5
ffmpeg.c
@@ -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
|
|||||||
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user