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.
This commit is contained in:
wm4 2015-08-04 19:23:07 +02:00
parent e5d3180889
commit 417e256c21
2 changed files with 3 additions and 3 deletions

View File

@ -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;

View File

@ -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;