[vlc-devel] Misuses of vout_Control
rem at videolan.org
Sun Feb 15 21:14:28 CET 2009
Le samedi 14 février 2009 21:47:11 Rémi Denis-Courmont, vous avez écrit :
> However, the following usages are invalid:
> * Maemo and Skins interfaces are reparenting when quitting. They have to
> ensure it does not destroy the window too early instead. As of VLC 1.0, the
> core ensures video outputs are cleaned up before interfaces.
It seems that skins is also abusing reparent to support switching skin while
playing. I am not going to fix that.
> * WinCE interface is controlling the video window focus this way. This is
> the only use of VOUT_SET_FOCUS in the entire tree, and seems to be a hack.
> * The zoom and video on top variable handlers in the core are not
> serialized properly. They should be synchronized with the video output
I fixed the video on top handler. I don't understand how the Zoom handler is
supposed to work. Several other callbacks in vout_intf.c are not thread safe,
although they don't use vout_Control().
> * Libvlc provides a video redraw function. I find this request silly. The
> video output should redraw transparently as appropriate. The back-end is
> only implemented on OSX.
Removed on non-OSX. It can still crash on OSX, but I could not care less,
since I find the concept of manual redraw stupid.
> * Libvlc provides two (!!!) video resize functions. I wonder if they ever
> worked, as at least the X11 output will automatically resize according to
> changes to the parent window size. In any case, these functions should sync
> with the video output thread instead of calling vout_Control() directly.
Same as the zoom callback. Not fixed.
> * Libvlc provides a reparenting function. This is known not to work
> properly. Also, it will explode if there are several video outputs.
Not fixed. It might explain some JVLC X11 assertion failures.
> * Libvlc provides an OSX-only window-less output function, which is
> similarly broken.
Removed on non-OSX. It can still crash on OSX, but I really don't see the
point of this function in the first place (bypassing the WM looks like a BAD
idea to me).
More information about the vlc-devel