[MPlayer-dev-eng] [PATCH] ggi osd support added
ikalvachev at gmail.com
Fri Jun 30 10:39:48 CEST 2006
2006/6/30, spdepagn at ncsu.edu <spdepagn at ncsu.edu>:
> Hi, I have added support for the osd to the ggi output driver. I am
> wondering why the osd is implemented so each output driver must implement
It must not.
mplayer -vf expand=::::1
> I do not know much about the inner-workings of mplayer, but to me this
> seems to only make it more difficult to write output drivers.
> Instead, why not do the alpha blending for the osd before ever calling the
> functions within the output driver? This way the output plugin will only
> ever know about the fully blended data, it is also potentially more
> efficient. If this seems reasonable I would be willing to make the needed
> changes, otherwise this patch will allow ggi to use the osd.
There are vo's that have independent channel for subtitles or that
could save one additional copy of the whole video frame by blending
inside the driver.
> I have applied it like this:
> ...mplayer $ patch -p1 < mplayer_ggi_osd.patch
You are storing osd internal planes from previous frame and draw them
on the next one, in draw_slice().
draw_slice() could be called many times for sinlge picture when new
slice (16 lines) have been updated. You are currently redrawing all
osd elements on every slice.
I must check the source in order to be sure that these planes are not
freed after they've been "drawn". Causing your driver to access freed
Messing with osd internals looks quite horrible way to implement osd.
And I don't think it could be accepted.
More information about the MPlayer-dev-eng