[MPlayer-dev-eng] Patch: Display OSD in the black stripes area with vo SMon Feb 11 16:13:18 2002

Alban Bedel albeu at free.fr
Tue Feb 12 21:25:01 CET 2002


Hi Fredrik Kuivinen,

on Tue, 12 Feb 2002 18:29:05 +0100 you wrote:

> On Mon, Feb 11, 2002 at 04:15:15PM +0200, Arpi wrote:
> > Hi,
> > 
> > > > > I think the OSD part will be registered as cosmetic changes.
> > > > > 
> > > > 
> > > > And the rule "No cosmetic changes are allowed in cvs" will apply? If that is
> > > > the case I don't think it is a cosmetic change. It is pretty useless to render
> > > > the OSD in every frame if it isn't needed. And I don't see anyway to detect
> > > > when the OSD changed without this patch.
> > > 	For osd_func use a last value. After each rendering save the osd_func
> > > 	value and on the next frame compare it to the current value to see if there
> > > 	were any change.
> > > 	Beside this imho this stuff must be done in a generic way, not per driver,
> > > 	but I'm not the good one to debate on this point ;) .
> > 
> > I agree in both things, especially in the second. It is usefull for every
> > drivers, why don't you implement it as generic code?
> > Or is your implementation SDL-specific, i mean use few bounding box / clip
> > rect features of sdl?
> >
> 
> I really don't see how to do it in a generic way. At least not with the current
> interface to libvo and how codecs interact with it.
	I looked at it today and you are right that there is no other way with the
	current structure. Imho there is actualy a big problem with libvo.
	The drivers handle too much things. When it's opened and the rendering
	window should be bigger than the movie the driver handle all translations.
	I think the driver should return the size of the output surface and mplayer
	should calculate where to put the movie (it will also give the possiblitie
	to pan the movie). This while remove many code wich is duplicated
	across all drivers and give much more flexiblity. But it's many work.
	And then come the osd, about all driver just make a call to the 
	vo_draw_text function with the good draw_alpha func. Why don't let mplayer 
	request the draw_alpha func from the driver and then let it handle osd drawing ? 
	This way we can render it where we want. 
	To resume the main problem is that now all drivers do translations to perform 
	all drawing only where the movie is, while this should be handled by some
	common code.
	I may  have missed some important points wich make all the above false, but
	this is what I thought when I saw how the current rendering is done.
		Albeu



More information about the MPlayer-dev-eng mailing list