summaryrefslogtreecommitdiffstats
path: root/sub/ass_mp.c
diff options
context:
space:
mode:
authorMartin Herkt <lachs0r@srsfckn.biz>2016-02-28 23:31:51 +0100
committerMartin Herkt <lachs0r@srsfckn.biz>2016-02-28 23:31:51 +0100
commit21cd4ff05bb46b375a9ad38c9f0b7f8e71a5d979 (patch)
treeb9679cc1d2c7c3cab0f88c370015f34f6d0b27ca /sub/ass_mp.c
parentd1d6257731866934717353fce484f5f472f845d1 (diff)
parent1f436f65f2ee4df6419ca68bd6426b8283db6d22 (diff)
downloadmpv-21cd4ff05bb46b375a9ad38c9f0b7f8e71a5d979.tar.bz2
mpv-21cd4ff05bb46b375a9ad38c9f0b7f8e71a5d979.tar.xz
Merge branch 'master' into release/current
Diffstat (limited to 'sub/ass_mp.c')
-rw-r--r--sub/ass_mp.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sub/ass_mp.c b/sub/ass_mp.c
index b30b9964de..8d40b5256a 100644
--- a/sub/ass_mp.c
+++ b/sub/ass_mp.c
@@ -163,3 +163,17 @@ ASS_Library *mp_ass_init(struct mpv_global *global, struct mp_log *log)
talloc_free(path);
return priv;
}
+
+void mp_ass_flush_old_events(ASS_Track *track, long long ts)
+{
+ int n = 0;
+ for (; n < track->n_events; n++) {
+ if ((track->events[n].Start + track->events[n].Duration) >= ts)
+ break;
+ ass_free_event(track, n);
+ track->n_events--;
+ }
+ for (int i = 0; n > 0 && i < track->n_events; i++) {
+ track->events[i] = track->events[i+n];
+ }
+}