From a87298e5015f083b6ea294f578dc0d54e1f0f88f Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 15 Sep 2013 02:13:54 +0200 Subject: mplayer: don't run heartbeat command while paused This is commonly used to disable the screensaver with broken/non- standard X screensavers. During pause, the screensaver should not be disabled, so not calling this command while paused seems sensible. See github issue #236. --- DOCS/man/en/options.rst | 6 ++++-- mpvcore/mplayer.c | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst index 8ac563004a..e1134ef864 100644 --- a/DOCS/man/en/options.rst +++ b/DOCS/man/en/options.rst @@ -989,7 +989,8 @@ ``--heartbeat-cmd=`` Command that is executed every 30 seconds during playback via *system()* - i.e. using the shell. The time between the commands can be customized with - the ``--heartbeat-interval`` option. + the ``--heartbeat-interval`` option. The command is not run while playback + is paused. .. note:: @@ -1002,7 +1003,8 @@ This can be "misused" to disable screensavers that do not support the proper X API (see also ``--stop-screensaver``). If you think this is too complicated, ask the author of the screensaver program to support the - proper X APIs. + proper X APIs. Note that the ``--stop-screensaver`` does not influence the + heartbeat code at all. .. admonition:: Example for xscreensaver diff --git a/mpvcore/mplayer.c b/mpvcore/mplayer.c index c8991fb64e..06017c7d32 100644 --- a/mpvcore/mplayer.c +++ b/mpvcore/mplayer.c @@ -3392,7 +3392,7 @@ static void handle_pause_on_low_cache(struct MPContext *mpctx) static void handle_heartbeat_cmd(struct MPContext *mpctx) { struct MPOpts *opts = mpctx->opts; - if (opts->heartbeat_cmd) { + if (opts->heartbeat_cmd && !mpctx->paused) { double now = mp_time_sec(); if (now - mpctx->last_heartbeat > opts->heartbeat_interval) { mpctx->last_heartbeat = now; -- cgit v1.2.3