[vlc-devel] Misuses of vout_Control

Rémi Denis-Courmont 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
> thread.

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).

Rémi Denis-Courmont

More information about the vlc-devel mailing list