summaryrefslogtreecommitdiffstats
path: root/player/command.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-11-23 15:30:36 +0100
committerwm4 <wm4@nowhere>2014-11-23 15:31:32 +0100
commit5bbd734fffde5f0d689216c07dfeb3508aeb1f57 (patch)
treebf5a2645d660cb1bc24214822de641e010ff4f52 /player/command.c
parent17ee2ca52444dec09713d62fb092d5df4b0d2b75 (diff)
downloadmpv-5bbd734fffde5f0d689216c07dfeb3508aeb1f57.tar.bz2
mpv-5bbd734fffde5f0d689216c07dfeb3508aeb1f57.tar.xz
command: don't queue framesteps
If repeated framestep commands are sent, just unpause the player, instead of playing N frames for N repeated commands.
Diffstat (limited to 'player/command.c')
-rw-r--r--player/command.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/player/command.c b/player/command.c
index 0042d8dee7..90adf003eb 100644
--- a/player/command.c
+++ b/player/command.c
@@ -4113,7 +4113,20 @@ int run_command(MPContext *mpctx, mp_cmd_t *cmd)
case MP_CMD_FRAME_STEP:
if (!mpctx->num_sources)
return -1;
- add_step_frame(mpctx, 1);
+ if (cmd->is_up_down) {
+ if (cmd->is_up) {
+ if (mpctx->step_frames < 1)
+ pause_player(mpctx);
+ } else {
+ if (cmd->repeated) {
+ unpause_player(mpctx);
+ } else {
+ add_step_frame(mpctx, 1);
+ }
+ }
+ } else {
+ add_step_frame(mpctx, 1);
+ }
break;
case MP_CMD_FRAME_BACK_STEP: