diff options
author | wm4 <wm4@nowhere> | 2015-10-27 20:57:04 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-10-27 20:57:04 +0100 |
commit | f891b24cb53c7690fc822beabdaa7a011e5b418b (patch) | |
tree | c44f2ac80a2193effeef5f0457ccb0fae39d3eeb | |
parent | 70aa3b04f8cdde164fbf3b9f0535cc4609b65453 (diff) |
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.c | 6 |
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); |