summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vf_ass.c14
-rw-r--r--libmpcodecs/vf_vo.c8
2 files changed, 12 insertions, 10 deletions
diff --git a/libmpcodecs/vf_ass.c b/libmpcodecs/vf_ass.c
index 4047316a50..a3a47f6b9e 100644
--- a/libmpcodecs/vf_ass.c
+++ b/libmpcodecs/vf_ass.c
@@ -356,14 +356,16 @@ static int render_frame(struct vf_instance *vf, mp_image_t *mpi,
static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts)
{
+ struct osd_state *osd = vf->priv->osd;
ASS_Image *images = 0;
- ASS_Renderer *renderer = vf->priv->osd->vsfilter_aspect ?
+ ASS_Renderer *renderer = osd->vsfilter_aspect ?
vf->priv->renderer_vsfilter : vf->priv->renderer_realaspect;
- if (sub_visibility && renderer && vf->priv->osd->ass_track
- && (pts != MP_NOPTS_VALUE))
- images = mp_ass_render_frame(renderer,
- vf->priv->osd->ass_track,
- (pts + sub_delay) * 1000 + .5, NULL);
+ if (sub_visibility && renderer && osd->ass_track
+ && (pts != MP_NOPTS_VALUE)) {
+ mp_ass_reload_options(renderer, vf->opts, &osd->ass_force_reload);
+ images = ass_render_frame(renderer, osd->ass_track,
+ (pts + sub_delay) * 1000 + .5, NULL);
+ }
prepare_image(vf, mpi);
if (images)
diff --git a/libmpcodecs/vf_vo.c b/libmpcodecs/vf_vo.c
index 8bbaf465b3..8f2f541fb4 100644
--- a/libmpcodecs/vf_vo.c
+++ b/libmpcodecs/vf_vo.c
@@ -175,10 +175,10 @@ static int control(struct vf_instance *vf, int request, void* data)
ass_set_aspect_ratio(renderer, scale, 1);
}
- images.imgs = mp_ass_render_frame(renderer,
- osd->ass_track,
- (pts+sub_delay) * 1000 + .5,
- &images.changed);
+ mp_ass_reload_options(renderer, vf->opts, &osd->ass_force_reload);
+ images.imgs = ass_render_frame(renderer, osd->ass_track,
+ (pts+sub_delay) * 1000 + .5,
+ &images.changed);
if (!vf->priv->prev_visibility)
images.changed = 2;
vf->priv->prev_visibility = true;