command: display-fps is the display FPS as assumed by the VO

Requested change in behavior.

Note that we set the assumed "infinite" display_fps to 1e6, which
conveniently lets vo_get_vsync_interval() return a dummy value of 1,
which can be easily checked against, and still avoids doing math with
float INFs.
This commit is contained in:
wm4 2015-03-12 23:41:25 +01:00
parent 209f8225ed
commit 9a7fc55607
3 changed files with 8 additions and 8 deletions

View File

@ -1342,9 +1342,9 @@ Property list
``display-fps``
The refresh rate of the current display. Currently, this is the lowest FPS
of any display covered by the video, as retrieved by the underlying system
APIs (e.g. xrandr on X11). It is not the measured FPS or the FPS set with
``--display-fps``. It's not necessarily available on all platforms. Note
that any of the listed facts may change any time without a warning.
APIs (e.g. xrandr on X11). It is not the measured FPS. It's not necessarily
available on all platforms. Note that any of the listed facts may change
any time without a warning.
``video-aspect`` (RW)
Video aspect, see ``--video-aspect``.

View File

@ -2601,18 +2601,18 @@ static int mp_property_win_minimized(void *ctx, struct m_property *prop,
}
static int mp_property_display_fps(void *ctx, struct m_property *prop,
int action, void *arg)
int action, void *arg)
{
MPContext *mpctx = ctx;
struct vo *vo = mpctx->video_out;
if (!vo)
return M_PROPERTY_UNAVAILABLE;
double fps = 0;
if (vo_control(vo, VOCTRL_GET_DISPLAY_FPS, &fps) < 1 || fps <= 0)
int64_t interval = vo_get_vsync_interval(vo);
if (interval <= 1)
return M_PROPERTY_UNAVAILABLE;
return m_property_double_ro(action, arg, fps);
return m_property_double_ro(action, arg, 1e6 / interval);
}
static int mp_property_display_names(void *ctx, struct m_property *prop,

View File

@ -312,7 +312,7 @@ static void update_display_fps(struct vo *vo)
pthread_mutex_unlock(&in->lock);
double display_fps = 1000.0; // assume infinite if unset
double display_fps = 1e6; // assume infinite if unset
if (vo->global->opts->frame_drop_fps > 0) {
display_fps = vo->global->opts->frame_drop_fps;
} else {