From 47d972102eee4150e427d5c4678607f85647f387 Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 22 Dec 2014 00:00:18 +0100 Subject: [PATCH] sd_lavc: ignore image subtitles with unknown duration after 1 minute Most image subtitle formats implicitly terminate the current subtitle event with the next event (e.g. a new packet read from the demuxer will instruct the subtitle render to stop display). If the subtitle event is just trailing, it will be displayed forever. So there's no proper way of doing this and we just apply an heuristic to avoid annoyances. --- sub/sd_lavc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sub/sd_lavc.c b/sub/sd_lavc.c index 3628607eed..0a969efc41 100644 --- a/sub/sd_lavc.c +++ b/sub/sd_lavc.c @@ -277,6 +277,9 @@ static void get_bitmaps(struct sd *sd, struct mp_osd_res d, double pts, ((sub->pts == MP_NOPTS_VALUE || pts >= 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) + break; current = sub; break; }