Index: input/input.c =================================================================== --- input/input.c (revision 26794) +++ input/input.c (working copy) @@ -64,6 +64,8 @@ { MP_CMD_SPEED_MULT, "speed_mult", 1, { {MP_CMD_ARG_FLOAT,{0}}, {-1,{0}} } }, { MP_CMD_SPEED_SET, "speed_set", 1, { {MP_CMD_ARG_FLOAT,{0}}, {-1,{0}} } }, { MP_CMD_QUIT, "quit", 0, { {MP_CMD_ARG_INT,{0}}, {-1,{0}} } }, + { MP_CMD_PAUSE_AND_MARK, "mark", 0, { {-1,{0}} } }, + { MP_CMD_GOTO_MARK, "goto_mark", 0, { {-1,{0}} } }, { MP_CMD_PAUSE, "pause", 0, { {-1,{0}} } }, { MP_CMD_FRAME_STEP, "frame_step", 0, { {-1,{0}} } }, { MP_CMD_PLAY_TREE_STEP, "pt_step",1, { { MP_CMD_ARG_INT ,{0}}, { MP_CMD_ARG_INT ,{0}}, {-1,{0}} } }, @@ -371,6 +373,8 @@ { { KEY_BACKSPACE, 0 }, "speed_set 1.0" }, { { 'q', 0 }, "quit" }, { { KEY_ESC, 0 }, "quit" }, + { { 'M', 0 }, "mark" }, + { { 'G', 0 }, "goto_mark" }, { { 'p', 0 }, "pause" }, { { ' ', 0 }, "pause" }, { { '.', 0 }, "frame_step" }, Index: input/input.h =================================================================== --- input/input.h (revision 26794) +++ input/input.h (working copy) @@ -109,6 +109,8 @@ #define MP_CMD_SWITCH_ANGLE 105 #define MP_CMD_ASS_USE_MARGINS 106 #define MP_CMD_SWITCH_TITLE 107 +#define MP_CMD_PAUSE_AND_MARK 108 +#define MP_CMD_GOTO_MARK 109 #define MP_CMD_GUI_EVENTS 5000 #define MP_CMD_GUI_LOADFILE 5001 Index: command.c =================================================================== --- command.c (revision 26794) +++ command.c (working copy) @@ -2284,6 +2284,7 @@ int run_command(MPContext * mpctx, mp_cmd_t * cmd) { + static double mark_pos = -1; sh_audio_t * const sh_audio = mpctx->sh_audio; sh_video_t * const sh_video = mpctx->sh_video; int brk_cmd = 0; @@ -2437,6 +2438,15 @@ playback_speed); } break; + case MP_CMD_GOTO_MARK: + if (mark_pos > 0) + mp_property_do("time_pos", M_PROPERTY_SET, &mark_pos ,mpctx); + break; + + case MP_CMD_PAUSE_AND_MARK: + mp_property_do("time_pos", M_PROPERTY_GET, &mark_pos ,mpctx); + // fallthrough + case MP_CMD_FRAME_STEP: case MP_CMD_PAUSE: cmd->pausing = 1;