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.
This commit is contained in:
Dudemanguy 2023-08-18 19:56:40 -05:00
parent 72e4178503
commit 725b631ec3
1 changed files with 2 additions and 2 deletions

View File

@ -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)