diff --git a/sub/sd_lavc.c b/sub/sd_lavc.c index f4b85e0784..adca4199b1 100644 --- a/sub/sd_lavc.c +++ b/sub/sd_lavc.c @@ -398,7 +398,8 @@ static struct sub *get_current(struct sd_lavc_priv *priv, double pts) if (!sub->valid) continue; if (pts == MP_NOPTS_VALUE || - (sub->pts == MP_NOPTS_VALUE || pts + 1e-6 >= sub->pts)) + ((sub->pts == MP_NOPTS_VALUE || pts + 1e-6 >= sub->pts) && + (sub->endpts == MP_NOPTS_VALUE || pts < sub->endpts))) { // Ignore "trailing" subtitles with unknown length after 1 minute. if (sub->endpts == MP_NOPTS_VALUE && pts >= sub->pts + 60)