From 190dea149aea07bc4be41c684a50db4231ccb0da Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 26 Dec 2015 18:35:36 +0100 Subject: sub: destroy/recreate ASS_Renderer when disabling/enablings subs Keeping ASS_Renderers around for a potentially large number of subtitle tracks could lead to excessive memory usage, especially since the libass cache is broken (caches even unneeded data), and might consume up to ~500MB of memory for no reason. --- sub/dec_sub.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'sub/dec_sub.c') diff --git a/sub/dec_sub.c b/sub/dec_sub.c index 0449fe8d05..a1f72d432b 100644 --- a/sub/dec_sub.c +++ b/sub/dec_sub.c @@ -301,6 +301,14 @@ void sub_reset(struct dec_sub *sub) pthread_mutex_unlock(&sub->lock); } +void sub_select(struct dec_sub *sub, bool selected) +{ + pthread_mutex_lock(&sub->lock); + if (sub->sd && sub->sd->driver->select) + sub->sd->driver->select(sub->sd, selected); + pthread_mutex_unlock(&sub->lock); +} + int sub_control(struct dec_sub *sub, enum sd_ctrl cmd, void *arg) { int r = CONTROL_UNKNOWN; -- cgit v1.2.3