summaryrefslogtreecommitdiffstats
path: root/player/command.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-11-05 18:47:12 +0100
committerwm4 <wm4@nowhere>2014-11-05 18:47:12 +0100
commitea613c2592e99ebb9f9bf3f374465b26a077b4cf (patch)
tree90d930eaac0bac9da1dc658d606afdc33ca72c4f /player/command.c
parenta821e72b81029767414ed8c661532f41350cbce7 (diff)
downloadmpv-ea613c2592e99ebb9f9bf3f374465b26a077b4cf.tar.bz2
mpv-ea613c2592e99ebb9f9bf3f374465b26a077b4cf.tar.xz
command: use playback time as reference for sub_seek
update_subtitle() already uees playback_pts to make subtitles work better in no-audio mode. Using get_current_time() usually gets playback_pts, but also has the advantage that it will use the seek target time during seeks. This will result in multiple sub_seek commands doing the right thing (at least as long as they're far enough apart so that seeking is actually initiated when the second command is run).
Diffstat (limited to 'player/command.c')
-rw-r--r--player/command.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/player/command.c b/player/command.c
index d97460ab91..451cb740a8 100644
--- a/player/command.c
+++ b/player/command.c
@@ -4018,9 +4018,10 @@ int run_command(MPContext *mpctx, mp_cmd_t *cmd)
return -1;
struct osd_sub_state state;
get_osd_sub_state(mpctx, 0, &state);
- if (state.dec_sub && mpctx->video_pts != MP_NOPTS_VALUE) {
+ double refpts = get_current_time(mpctx);
+ if (state.dec_sub && refpts != MP_NOPTS_VALUE) {
double a[2];
- a[0] = mpctx->video_pts - state.video_offset - opts->sub_delay;
+ a[0] = refpts - state.video_offset - opts->sub_delay;
a[1] = cmd->args[0].v.i;
if (sub_control(state.dec_sub, SD_CTRL_SUB_STEP, a) > 0) {
if (cmd->id == MP_CMD_SUB_STEP) {