mirror of https://git.ffmpeg.org/ffmpeg.git
ffplay: always show stats at all log levels if requested by user
Since 3b491c5a50
, stats would be hidden if loglevel was lower than
info, even if -stats was set.
Fixes #6962
This commit is contained in:
parent
a6e56d12a4
commit
2d6a89872e
|
@ -133,8 +133,9 @@ This option has been deprecated in favor of private options, try -pixel_format.
|
|||
@item -stats
|
||||
Print several playback statistics, in particular show the stream
|
||||
duration, the codec parameters, the current position in the stream and
|
||||
the audio/video synchronisation drift. It is on by default, to
|
||||
explicitly disable it you need to specify @code{-nostats}.
|
||||
the audio/video synchronisation drift. It is shown by default, unless the
|
||||
log level is lower than @code{info}. Its display can be forced by manually
|
||||
specifying this option. To disable it, you need to specify @code{-nostats}.
|
||||
|
||||
@item -fast
|
||||
Non-spec-compliant optimizations.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue