summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/dec_video.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2008-12-09 04:14:38 +0200
committerUoti Urpala <uau@glyph.nonexistent.invalid>2008-12-09 04:14:38 +0200
commite948b1ae06afaff3e10df4c03a59133fc0b35105 (patch)
treeb109007db3fd75ed81b490420209e3878adf3261 /libmpcodecs/dec_video.c
parent66cefd5f7196022f5f0c45b2f68a8fa3b354c917 (diff)
downloadmpv-e948b1ae06afaff3e10df4c03a59133fc0b35105.tar.bz2
mpv-e948b1ae06afaff3e10df4c03a59133fc0b35105.tar.xz
Work around vo gl/libass subtitle timing problem
vo gl generates bitmaps for EOSD content (libass subtitles) when DRAW_EOSD is called but actual drawing of both EOSD and OSD is done in draw_osd(). Since draw_osd() was called first it drew the EOSD content from the previous frame, so the subtitles were always one frame late. As a simple workaround update EOSD content first, then normal OSD. This makes vo gl work correctly and should have no effect on anything else.
Diffstat (limited to 'libmpcodecs/dec_video.c')
-rw-r--r--libmpcodecs/dec_video.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libmpcodecs/dec_video.c b/libmpcodecs/dec_video.c
index 4259377342..291859abb2 100644
--- a/libmpcodecs/dec_video.c
+++ b/libmpcodecs/dec_video.c
@@ -455,10 +455,10 @@ int filter_video(sh_video_t *sh_video, void *frame, double pts,
// apply video filters and call the leaf vo/ve
int ret = vf->put_image(vf, mpi, pts);
if (ret > 0) {
- vf->control(vf, VFCTRL_DRAW_OSD, osd);
#ifdef CONFIG_ASS
vf->control(vf, VFCTRL_DRAW_EOSD, NULL);
#endif
+ vf->control(vf, VFCTRL_DRAW_OSD, osd);
}
t2 = GetTimer() - t2;