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

brezhoneg1 brezhoneg1 at yahoo.fr
Mon Dec 21 22:59:07 CET 2009


Hello,

   Please, find a series of small patches for discussion. They are
intended to improve the GUI interfaces.

   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 ?


  patch2:
  ------

  The intf-show variable is present in a ugly hack, which seems no
longer needed (I could not reproduce the problem it is meant to solve).
On the other hand, it makes fullscreen controller behave a bit
erratically. Any reason to keep this hack that I am not aware of ?


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

 
  patch4 :
  ------

  One event that seems to be cruelly missing is the Playlist stop event.
With patch3 applied, one could implement smooth fullscreen transitions.
The only missing thing is to know when the playlist terminates to
automatically return to windowed mode. patch4 exports the playlist
status (actually, only Playlist_Stopped is really needed)


  patch5 :
  -------

  A small change needed in xcb if patch3 is applied.


  Comments welcome

Regards
Erwan10
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-vlc-core-change-in-the-way-a-new-size-is-forced.patch
Type: application/octet-stream
Size: 3067 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20091221/8e6eb568/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-vlc-core-remove-a-hack-that-seems-no-longer-needed.patch
Type: application/octet-stream
Size: 1453 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20091221/8e6eb568/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-vout_window-add-a-fullscreen-hint.patch
Type: application/octet-stream
Size: 1289 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20091221/8e6eb568/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-playlist-add-a-playlist-event-to-advertise-changes.patch
Type: application/octet-stream
Size: 2339 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20091221/8e6eb568/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-xcb-keep-current-fullscreen-status-at-opening-time.patch
Type: application/octet-stream
Size: 1508 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20091221/8e6eb568/attachment-0004.obj>


More information about the vlc-devel mailing list