[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