diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2008-12-09 04:14:38 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2008-12-09 04:14:38 +0200 |
commit | e948b1ae06afaff3e10df4c03a59133fc0b35105 (patch) | |
tree | b109007db3fd75ed81b490420209e3878adf3261 /libmpcodecs | |
parent | 66cefd5f7196022f5f0c45b2f68a8fa3b354c917 (diff) | |
download | mpv-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')
-rw-r--r-- | libmpcodecs/dec_video.c | 2 |
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; |