[MPlayer-G2-dev] Concerning TODO item re-think parent-child connection, move to vf_vo2.c maybe

Sascha Sommer saschasommer at freenet.de
Tue Dec 9 14:25:21 CET 2003


Ok lets see what we have and what we need.
As far as I know there are two kinds of vo modules. Exclusive and
nonexclusive or
windowed drivers. Exclusive drivers are fbdev, vesa, svga, dga etc. and the
windowed
x11, xv, directx, gl. Exclusive drivers are not really interesting for GUIs
and their
setup won't change. The image will always stay at the same position and will
always have
the same size. Their main advantage is to change resolution and depth.
This is completely different for windowed drivers. Their image position and
size will change
but the screen setup won't. I think all of them need nothing more than a
handle to the window
in which they should display the window, it's x, y, width and height and the
colorkey. Therefore
I propose that the UI creates the windows for them and passes its parameters
to the vo when
they change.
The control calls for this are already there:
VOCTRL_SET_WINDOW
VOCTRL_SET_COLORKEY
VOCTRL_RESIZE_DEST

But what about vidix and the kernel mode drivers like mga_vid and tdfx_vid?
In G1 these can be used either as windowed drivers via [x/win]vidix or as
subdriver
of an exclusive driver like vo vesa.
Using them as windowed drivers in G2 is no problem as vo xvidix's job is
already done
by the GUI. One would only need to adjust their api to match the libvo2 api.
To avoid the code duplication when using them in exclusive mode as it exist
in G1 I would propose to make a special video filter that opens two vos.
It would open the exclusive driver and would call its preinit and config and
maybe paint the background with
the colorkey.As the next step it could open a child driver like vidix and
configurate it for playback ontop of the exclusive driver. This would allow
to use vidix and the kernel mode drivers toghether with exclusive vo drivers
without adapting the later ones to support them.
Feel free to comment.

Sascha



More information about the MPlayer-G2-dev mailing list