command: don't queue framesteps

If repeated framestep commands are sent, just unpause the player, instead
of playing N frames for N repeated commands.
This commit is contained in:
wm4 2014-11-23 15:30:36 +01:00
parent 17ee2ca524
commit 5bbd734fff
2 changed files with 15 additions and 1 deletions

View File

@ -537,6 +537,7 @@ static bool key_updown_ok(enum mp_command_type cmd)
{
switch (cmd) {
case MP_CMD_SCRIPT_BINDING:
case MP_CMD_FRAME_STEP:
return true;
default:
return false;

View File

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