From 725b631ec3bdd5016072b5a6aa6a218fb87ffd11 Mon Sep 17 00:00:00 2001 From: Dudemanguy Date: Fri, 18 Aug 2023 19:56:40 -0500 Subject: sd_lavc: use SUB_GAP_THRESHOLD for overlaps/gaps It turns out this already exists for sd_ass and is being used there. We can make use of this arbitrary threshold instead for overlapping subtitle durations to avoid the weird flashing behavior with some pgs subtitles. --- sub/sd_lavc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sub/sd_lavc.c') diff --git a/sub/sd_lavc.c b/sub/sd_lavc.c index adca4199b1..eb71bdd0c2 100644 --- a/sub/sd_lavc.c +++ b/sub/sd_lavc.c @@ -398,8 +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->endpts == MP_NOPTS_VALUE || pts < sub->endpts))) + ((sub->pts == MP_NOPTS_VALUE || pts + SUB_GAP_THRESHOLD >= sub->pts) && + (sub->endpts == MP_NOPTS_VALUE || pts - SUB_GAP_THRESHOLD <= sub->endpts))) { // Ignore "trailing" subtitles with unknown length after 1 minute. if (sub->endpts == MP_NOPTS_VALUE && pts >= sub->pts + 60) -- cgit v1.2.3