summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-10-27 20:57:04 +0100
committerwm4 <wm4@nowhere>2015-10-27 20:57:04 +0100
commitf891b24cb53c7690fc822beabdaa7a011e5b418b (patch)
treec44f2ac80a2193effeef5f0457ccb0fae39d3eeb
parent70aa3b04f8cdde164fbf3b9f0535cc4609b65453 (diff)
downloadmpv-f891b24cb53c7690fc822beabdaa7a011e5b418b.tar.bz2
mpv-f891b24cb53c7690fc822beabdaa7a011e5b418b.tar.xz
vo: kill non-working missed frame detection
This was not very reliable. In the normal vo_opengl case, this didn't deal well enough with vsync jitter. Vsync timings can jitter quite extremely, up to a whole vsync duration, in which case the "missed" frame counter keeps growing, even though nothing is wrong. This behavior also messes up the A/V difference calculation, but as long as it's within tolerance, it won't provoke extra frame dropping/repeating. Real misses are harder to detect, and I might add such detection later. In the vo_opengl_cb case, this was additionally broken due to the asynchronity between renderer and VO threads.
-rw-r--r--video/out/vo.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/video/out/vo.c b/video/out/vo.c
index 3377145e06..48812fbfdd 100644
--- a/video/out/vo.c
+++ b/video/out/vo.c
@@ -613,8 +613,6 @@ static bool render_frame(struct vo *vo)
vo->in->vsync_interval = in->display_fps > 0 ? 1e6 / in->display_fps : 0;
vo->in->vsync_interval = MPMAX(vo->in->vsync_interval, 1);
- bool continuous = in->current_frame && in->current_frame->display_synced;
-
if (in->frame_queued) {
talloc_free(in->current_frame);
in->current_frame = in->frame_queued;
@@ -747,10 +745,6 @@ static bool render_frame(struct vo *vo)
in->dropped_frame = prev_drop_count < vo->in->drop_count;
in->rendering = false;
- if (in->current_frame && in->current_frame->display_synced &&
- continuous && in->vsync_interval_approx > in->vsync_interval * 3 / 2)
- in->missed_count += 1;
-
double diff = (in->vsync_interval - in->vsync_interval_approx) / 1e6;
if (fabs(diff) < 0.150)
MP_STATS(vo, "value %f vsync-diff", diff);