[vlc-devel] [PATCHES] -- various GUI interface improvements (to be discussed)

brezhoneg1 brezhoneg1 at yahoo.fr
Tue Dec 22 17:15:12 CET 2009


Hi, 

--- En date de : Mar 22.12.09, Laurent Aimar <fenrir at via.ecp.fr> a écrit :

> On Mon, Dec 21, 2009, brezhoneg1 wrote:
> >    patch1:
> >    ------
> >    Unlike vlc1.0, vlc1.1 (new vout design)
> now takes into account the
> > return value of a vout_window_SetSize.
> >    The problem is that GUI interfaces don't
> belong to the same thread as
> > the vout thread, and therefore returning
> >    a relevant ack/nack means blocking the
> vout thread, performing
> > resizing (can be a heavy operation) and then only
> returning.
> > 
> >    In vlc1.0, VLC_SUCCESS was returned right
> away, and resizing then did
> > or didn't occur asynchronously, depending on the GUI
> configuration. This
> > was not a problem, because the vout output was an
> observer of any change
> > in size and ended up reporting the real change
> anyway.
> > 
> >    The new design shows problem especially
> when zooming in/out with
> > is_display_filled enabled. A change in size is forced
> and taken for
> > granted whereas the GUI interfaces may not accept this
> change. This
> > results in the inner video no longer centered in the
> container. This can
> > be reproduced using 'o', alt-'o' and alt-shift-'o'
> keys.
> >     - in fullscreen mode (both qt4
> and skins)
> >     - with qt4 if
> -no-qt-video-autoresize is set
> >     - with skins if
> autoresize="false" or min/max width/height are set
> > on layouts.
> > 
> >   The patch simply reverts to the
> vlc1.0 way of doing things for this
> > matter. Any objections to it ?
>  I don't like that patch because it actually breaks the
> semantic of
> vout_display_t::cfg as it does not match anymore what have
> been accepted by
> VOUT_DISPLAY_CHANGE_DISPLAY_SIZE.
> 
>  Why don't you simply return VLC_EGENERIC in the qt4 window
> provider but still
> issue the resize ? I think it may do what you want (there
> is just one
> error message to remove probably).


You're right. sending VLC_EGENERIC is another solution. I'll commit it if there is no other objections.


> >   patch3:
> >   -------
> > 
> >   A vout window provider is given
> width/height hints at open time. Why
> > not also pass on the fullscreen flag. This could help
> GUI interfaces
> > start right away in fullscreen mode if needed, rather
> than start in
> > windowed mode and then switch  (often meaning
> visible and unpleasant
> > transitions).
>  Well, I agree it would be nice, but for the moment there
> is no way
> to know if the vout windows provider has actually performed
> the fullscreen
> or not, and that's needed.

Why not add a second field in wnd->cfg so that vout_display knows if vout_window provider has accepted/rejected fullscreen hint and acts accordlingly.


Erwan10


      



More information about the vlc-devel mailing list