summaryrefslogtreecommitdiffstats
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
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).
-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) {