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

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Tue Dec 30 11:40:46 CET 2008


On Sat, Dec 27, 2008 at 08:28:56PM +0100, Reimar Döffinger wrote:
> 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.

All applied, feel free to improve.



More information about the MPlayer-dev-eng mailing list