[vlc-devel] [PATCHES] -- various GUI interface improvements (to be discussed)
brezhoneg1 at yahoo.fr
Tue Dec 22 17:15:12 CET 2009
--- 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
> > 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
> > 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'
> > - 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
> 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.
More information about the vlc-devel