summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-11-23 16:54:53 +0100
committerwm4 <wm4@nowhere>2015-11-23 16:54:53 +0100
commit2e401201adf562ae9824fc79e6834ca648b0b114 (patch)
treeebd81568f8d43d4375c6cb6bcf517e0d4faf7705
parentb2e8d5749be8825b011458d132873ff2be5b68ae (diff)
downloadmpv-2e401201adf562ae9824fc79e6834ca648b0b114.tar.bz2
mpv-2e401201adf562ae9824fc79e6834ca648b0b114.tar.xz
vo: remove VOCTRL_GET_RECENT_FLIP_TIME
It doesn't have any real purpose anymore. Up until now, it was still implemented by vo_wayland, but since we changed how the frame callbacks work, even that appears to be pointless. Originally, the plan was to somehow extend this mechanism to all backends and to magically fix frame scheduling, but since we can't hope for proper mechanisms even on wayland, this idea looks way less interesting.
-rw-r--r--video/out/cocoa_common.m2
-rw-r--r--video/out/vo.c9
-rw-r--r--video/out/vo.h1
-rw-r--r--video/out/vo_wayland.c8
4 files changed, 1 insertions, 19 deletions
diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m
index 022520665a..c316a09a04 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -796,8 +796,6 @@ static int vo_cocoa_control_async(struct vo *vo, int *events, int request, void
case VOCTRL_CHECK_EVENTS:
*events |= vo_cocoa_check_events(vo);
return VO_TRUE;
- case VOCTRL_GET_RECENT_FLIP_TIME:
- return VO_FALSE; // unsupported, but avoid syncing with main thread
}
return VO_NOTIMPL;
}
diff --git a/video/out/vo.c b/video/out/vo.c
index c260ac7f0f..6606cf82f7 100644
--- a/video/out/vo.c
+++ b/video/out/vo.c
@@ -727,14 +727,7 @@ static bool render_frame(struct vo *vo)
vo->driver->flip_page(vo);
int64_t prev_flip = in->last_flip;
-
- in->last_flip = -1;
-
- vo->driver->control(vo, VOCTRL_GET_RECENT_FLIP_TIME, &in->last_flip);
-
- if (in->last_flip < 0)
- in->last_flip = mp_time_us();
-
+ in->last_flip = mp_time_us();
in->vsync_interval_approx = in->last_flip - prev_flip;
MP_STATS(vo, "end video");
diff --git a/video/out/vo.h b/video/out/vo.h
index a9000ebb86..bd68858b43 100644
--- a/video/out/vo.h
+++ b/video/out/vo.h
@@ -105,7 +105,6 @@ enum mp_voctrl {
VOCTRL_GET_ICC_PROFILE, // bstr*
VOCTRL_GET_AMBIENT_LUX, // int*
VOCTRL_GET_DISPLAY_FPS, // double*
- VOCTRL_GET_RECENT_FLIP_TIME, // int64_t* (using mp_time_us())
VOCTRL_GET_PREF_DEINT, // int*
};
diff --git a/video/out/vo_wayland.c b/video/out/vo_wayland.c
index c9f909b448..dcbe2d5347 100644
--- a/video/out/vo_wayland.c
+++ b/video/out/vo_wayland.c
@@ -132,8 +132,6 @@ struct priv {
// this id tells us if the subtitle part has changed or not
int change_id[MAX_OSD_PARTS];
- int64_t recent_flip_time; // last frame event
-
// options
int enable_alpha;
int use_rgb565;
@@ -513,7 +511,6 @@ static void redraw(void *data, uint32_t time)
p->x = 0;
p->y = 0;
- p->recent_flip_time = mp_time_us();
}
static void flip_page(struct vo *vo)
@@ -663,11 +660,6 @@ static int control(struct vo *vo, uint32_t request, void *data)
}
case VOCTRL_REDRAW_FRAME:
return redraw_frame(p);
- case VOCTRL_GET_RECENT_FLIP_TIME:
- {
- *(int64_t*) data = p->recent_flip_time;
- return VO_TRUE;
- }
}
int events = 0;
int r = vo_wayland_control(vo, &events, request, data);