summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-12-22 00:00:18 +0100
committerAlessandro Ghedini <alessandro@ghedini.me>2015-01-14 16:19:41 +0100
commit47d972102eee4150e427d5c4678607f85647f387 (patch)
treef566079379ac186ffeed7a11f449d52207b83777
parent0cf7316c4751d0974952aeeba26d2bbe536b1f65 (diff)
downloadmpv-47d972102eee4150e427d5c4678607f85647f387.tar.bz2
mpv-47d972102eee4150e427d5c4678607f85647f387.tar.xz
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.
-rw-r--r--sub/sd_lavc.c3
1 files changed, 3 insertions, 0 deletions
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;
}