mirror of https://git.ffmpeg.org/ffmpeg.git
ffplay: add frame drop statistics
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
8f17a8efd6
commit
d54af906a4
7
ffplay.c
7
ffplay.c
|
@ -172,6 +172,8 @@ typedef struct VideoState {
|
||||||
struct SwrContext *swr_ctx;
|
struct SwrContext *swr_ctx;
|
||||||
double audio_current_pts;
|
double audio_current_pts;
|
||||||
double audio_current_pts_drift;
|
double audio_current_pts_drift;
|
||||||
|
int frame_drops_early;
|
||||||
|
int frame_drops_late;
|
||||||
|
|
||||||
enum ShowMode {
|
enum ShowMode {
|
||||||
SHOW_MODE_NONE = -1, SHOW_MODE_VIDEO = 0, SHOW_MODE_WAVES, SHOW_MODE_RDFT, SHOW_MODE_NB
|
SHOW_MODE_NONE = -1, SHOW_MODE_VIDEO = 0, SHOW_MODE_WAVES, SHOW_MODE_RDFT, SHOW_MODE_NB
|
||||||
|
@ -1172,6 +1174,7 @@ retry:
|
||||||
|
|
||||||
if((framedrop>0 || (framedrop && is->audio_st)) && time > is->frame_timer + duration){
|
if((framedrop>0 || (framedrop && is->audio_st)) && time > is->frame_timer + duration){
|
||||||
if(is->pictq_size > 1){
|
if(is->pictq_size > 1){
|
||||||
|
is->frame_drops_late++;
|
||||||
pictq_next_picture(is);
|
pictq_next_picture(is);
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
|
@ -1257,9 +1260,10 @@ retry:
|
||||||
av_diff = 0;
|
av_diff = 0;
|
||||||
if (is->audio_st && is->video_st)
|
if (is->audio_st && is->video_st)
|
||||||
av_diff = get_audio_clock(is) - get_video_clock(is);
|
av_diff = get_audio_clock(is) - get_video_clock(is);
|
||||||
printf("%7.2f A-V:%7.3f aq=%5dKB vq=%5dKB sq=%5dB f=%"PRId64"/%"PRId64" \r",
|
printf("%7.2f A-V:%7.3f fd=%4d aq=%5dKB vq=%5dKB sq=%5dB f=%"PRId64"/%"PRId64" \r",
|
||||||
get_master_clock(is),
|
get_master_clock(is),
|
||||||
av_diff,
|
av_diff,
|
||||||
|
is->frame_drops_early + is->frame_drops_late,
|
||||||
aqsize / 1024,
|
aqsize / 1024,
|
||||||
vqsize / 1024,
|
vqsize / 1024,
|
||||||
sqsize,
|
sqsize,
|
||||||
|
@ -1504,6 +1508,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke
|
||||||
clockdiff + ptsdiff - is->frame_last_filter_delay < 0) {
|
clockdiff + ptsdiff - is->frame_last_filter_delay < 0) {
|
||||||
is->frame_last_dropped_pos = pkt->pos;
|
is->frame_last_dropped_pos = pkt->pos;
|
||||||
is->frame_last_dropped_pts = dpts;
|
is->frame_last_dropped_pts = dpts;
|
||||||
|
is->frame_drops_early++;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue