[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