diff options
Diffstat (limited to 'libmpcodecs')
-rw-r--r-- | libmpcodecs/vf_ass.c | 14 | ||||
-rw-r--r-- | libmpcodecs/vf_vo.c | 8 |
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; |