diff options
author | Guido Cella <guido@guidocella.xyz> | 2024-02-18 13:31:01 +0100 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2024-02-23 21:37:22 +0100 |
commit | b35e34ae2ff8066e998191a02472a298e3266404 (patch) | |
tree | 145e1f4f14d9b3271fbfa2b09cd72980ee0d5583 /player | |
parent | b564d5916ee200c70cccb5ae77c677f5ce74dba0 (diff) | |
download | mpv-b35e34ae2ff8066e998191a02472a298e3266404.tar.bz2 mpv-b35e34ae2ff8066e998191a02472a298e3266404.tar.xz |
command: fix sub-seek while paused without a video
When using sub-seek without a video track while paused, adding the 0.01
SUB_SEEK_OFFSET to the new timestamp is not enough to show the new
subtitle line. Add 0.1 instead to fix it. 0.01 is already enough for
sub-step.
Diffstat (limited to 'player')
-rw-r--r-- | player/command.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/player/command.c b/player/command.c index 712c081d04..e81874010b 100644 --- a/player/command.c +++ b/player/command.c @@ -5445,6 +5445,14 @@ static void cmd_sub_step_seek(void *p) track_ind == 0 ? "sub-delay" : "secondary-sub-delay", cmd->on_osd); } else { + // We can easily seek/step to the wrong subtitle line (because + // video frame PTS and sub PTS rarely match exactly). + // sub/sd_ass.c adds SUB_SEEK_OFFSET as a workaround, and we + // need an even bigger offset without a video. + if (!mpctx->current_track[0][STREAM_VIDEO] || + mpctx->current_track[0][STREAM_VIDEO]->image) { + a[0] += SUB_SEEK_WITHOUT_VIDEO_OFFSET - SUB_SEEK_OFFSET; + } mark_seek(mpctx); queue_seek(mpctx, MPSEEK_ABSOLUTE, a[0], MPSEEK_EXACT, MPSEEK_FLAG_DELAY); |