summaryrefslogtreecommitdiff
path: root/fftools/ffplay.c
diff options
context:
space:
mode:
authorGyan Doshi <ffmpeg@gyani.pro>2020-04-03 16:36:31 +0530
committerGyan Doshi <ffmpeg@gyani.pro>2020-04-04 15:17:24 +0530
commit2d6a89872ea2e20a3464be825d683d6f91d67c62 (patch)
treea93fbf766e2fffa68ea8e2c62f00ec2cee644a65 /fftools/ffplay.c
parenta6e56d12a413013d3a4b39f670e5495805965a67 (diff)
downloadffmpeg-2d6a89872ea2e20a3464be825d683d6f91d67c62.tar.gz
ffplay: always show stats at all log levels if requested by user
Since 3b491c5a500, stats would be hidden if loglevel was lower than info, even if -stats was set. Fixes #6962
Diffstat (limited to 'fftools/ffplay.c')
-rw-r--r--fftools/ffplay.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index 2ed4b22d3e..416ebbf7df 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -40,6 +40,7 @@
#include "libavutil/samplefmt.h"
#include "libavutil/avassert.h"
#include "libavutil/time.h"
+#include "libavutil/bprint.h"
#include "libavformat/avformat.h"
#include "libavdevice/avdevice.h"
#include "libswscale/swscale.h"
@@ -326,7 +327,7 @@ static int display_disable;
static int borderless;
static int alwaysontop;
static int startup_volume = 100;
-static int show_status = 1;
+static int show_status = -1;
static int av_sync_type = AV_SYNC_AUDIO_MASTER;
static int64_t start_time = AV_NOPTS_VALUE;
static int64_t duration = AV_NOPTS_VALUE;
@@ -1692,6 +1693,7 @@ display:
}
is->force_refresh = 0;
if (show_status) {
+ AVBPrint buf;
static int64_t last_time;
int64_t cur_time;
int aqsize, vqsize, sqsize;
@@ -1715,18 +1717,28 @@ display:
av_diff = get_master_clock(is) - get_clock(&is->vidclk);
else if (is->audio_st)
av_diff = get_master_clock(is) - get_clock(&is->audclk);
- av_log(NULL, AV_LOG_INFO,
- "%7.2f %s:%7.3f fd=%4d aq=%5dKB vq=%5dKB sq=%5dB f=%"PRId64"/%"PRId64" \r",
- get_master_clock(is),
- (is->audio_st && is->video_st) ? "A-V" : (is->video_st ? "M-V" : (is->audio_st ? "M-A" : " ")),
- av_diff,
- is->frame_drops_early + is->frame_drops_late,
- aqsize / 1024,
- vqsize / 1024,
- sqsize,
- is->video_st ? is->viddec.avctx->pts_correction_num_faulty_dts : 0,
- is->video_st ? is->viddec.avctx->pts_correction_num_faulty_pts : 0);
+
+ av_bprint_init(&buf, 0, AV_BPRINT_SIZE_AUTOMATIC);
+ av_bprintf(&buf,
+ "%7.2f %s:%7.3f fd=%4d aq=%5dKB vq=%5dKB sq=%5dB f=%"PRId64"/%"PRId64" \r",
+ get_master_clock(is),
+ (is->audio_st && is->video_st) ? "A-V" : (is->video_st ? "M-V" : (is->audio_st ? "M-A" : " ")),
+ av_diff,
+ is->frame_drops_early + is->frame_drops_late,
+ aqsize / 1024,
+ vqsize / 1024,
+ sqsize,
+ is->video_st ? is->viddec.avctx->pts_correction_num_faulty_dts : 0,
+ is->video_st ? is->viddec.avctx->pts_correction_num_faulty_pts : 0);
+
+ if (show_status == 1 && AV_LOG_INFO > av_log_get_level())
+ fprintf(stderr, "%s", buf.str);
+ else
+ av_log(NULL, AV_LOG_INFO, "%s", buf.str);
+
fflush(stdout);
+ av_bprint_finalize(&buf, NULL);
+
last_time = cur_time;
}
}