diff options
Diffstat (limited to 'player/command.c')
-rw-r--r-- | player/command.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/player/command.c b/player/command.c index e3a3313f79..cdadafa892 100644 --- a/player/command.c +++ b/player/command.c @@ -5245,12 +5245,13 @@ void handle_ab_loop(struct MPContext *mpctx) struct MPOpts *opts = mpctx->opts; double now = mpctx->restart_complete ? mpctx->playback_pts : MP_NOPTS_VALUE; - if (now != MP_NOPTS_VALUE && opts->ab_loop[0] != MP_NOPTS_VALUE && - opts->ab_loop[1] != MP_NOPTS_VALUE) - { + if (now != MP_NOPTS_VALUE && opts->ab_loop[0] != MP_NOPTS_VALUE) { + double end = opts->ab_loop[1]; + if (end == MP_NOPTS_VALUE) + end = INFINITY; if (ctx->prev_pts >= opts->ab_loop[0] && - ctx->prev_pts < opts->ab_loop[1] && - (now >= opts->ab_loop[1] || mpctx->stop_play == AT_END_OF_FILE)) + ctx->prev_pts < end && + (now >= end || mpctx->stop_play == AT_END_OF_FILE)) { mark_seek(mpctx); queue_seek(mpctx, MPSEEK_ABSOLUTE, opts->ab_loop[0], |