[MPlayer-dev-eng] [PATCH] fix flickering OSD with tfields, yadif

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Sat Dec 27 20:28:56 CET 2008


On Sat, Dec 27, 2008 at 07:03:18PM +0200, uoti.urpala at pp1.inet.fi wrote:
> Reimar Döffinger wrote:
> > How in the world is -correct-pts supposed to change the fact that
> > draw_osd is only called for every second frame, and thus the OSD is only
> > drawn on every second frame?
> 
> Filters adding frames is supported in that case. The added frames are handled
> normally by core code and should not differ from OSD point of view.

Well, obviously once more "how it is supposed to work" has not survived
the impact of reality.
I'm not sure if it is less ugly to move this into mplayer.c instead so
it is not duplicated, but this patch fixes the -correct-pts case:
Index: libmpcodecs/vf.c
===================================================================
--- libmpcodecs/vf.c	(revision 28188)
+++ libmpcodecs/vf.c	(working copy)
@@ -578,6 +578,12 @@
 	tmp = last->continue_buffered_image;
 	last->continue_buffered_image = NULL;
 	ret = tmp(last);
+	if (ret > 0) {
+	    vf->control(vf, VFCTRL_DRAW_OSD, NULL);
+#ifdef CONFIG_ASS
+	    vf->control(vf, VFCTRL_DRAW_EOSD, NULL);
+#endif
+	}
 	if (ret)
 	    return ret;
     }

However I see no reason to leave the other case broken.



More information about the MPlayer-dev-eng mailing list