summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-08-04 19:23:07 +0200
committerwm4 <wm4@nowhere>2015-08-04 19:23:07 +0200
commit417e256c215e555198db1796edec3cfafd044459 (patch)
tree97c44ed784e70d26c20c3a1c9de3197cfbad260f
parente5d3180889ab14a57aacb9772ee67ad24478a3f1 (diff)
downloadmpv-417e256c215e555198db1796edec3cfafd044459.tar.bz2
mpv-417e256c215e555198db1796edec3cfafd044459.tar.xz
vo_vdpau: fix frame scheduling if display FPS is unknown
Pretty stupid: vo_get_vsync_interval() returns a negative value if the display FPS is unknown (e.g. xrandr not compiled), and the comparison whether the value is below 0 fails later because it's assigned to an unsigned int. Regression since commit e3d85ad4. Also, fix some comments in vo.c.
-rw-r--r--video/out/vo.c4
-rw-r--r--video/out/vo_vdpau.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/video/out/vo.c b/video/out/vo.c
index a0c4768b68..9960004e67 100644
--- a/video/out/vo.c
+++ b/video/out/vo.c
@@ -135,6 +135,8 @@ struct vo_internal {
int queued_events; // event mask for the user
int internal_events; // event mask for us
+ int64_t vsync_interval;
+
int64_t flip_queue_offset; // queue flip events at most this much in advance
int64_t drop_count;
@@ -151,7 +153,6 @@ struct vo_internal {
double display_fps;
// --- The following fields can be accessed from the VO thread only
- int64_t vsync_interval;
int64_t vsync_interval_approx;
int64_t last_flip;
char *window_title;
@@ -981,7 +982,6 @@ int vo_get_num_req_frames(struct vo *vo)
return res;
}
-// to be called from the VO thread only
int64_t vo_get_vsync_interval(struct vo *vo)
{
struct vo_internal *in = vo->in;
diff --git a/video/out/vo_vdpau.c b/video/out/vo_vdpau.c
index 7e7771f209..20457b602e 100644
--- a/video/out/vo_vdpau.c
+++ b/video/out/vo_vdpau.c
@@ -110,7 +110,7 @@ struct vdpctx {
VdpTime recent_vsync_time;
float user_fps;
int composite_detect;
- unsigned int vsync_interval;
+ int vsync_interval;
uint64_t last_queue_time;
uint64_t queue_time[MAX_OUTPUT_SURFACES];
uint64_t last_ideal_time;