[vlc-devel] [PATCH 00/20] MR: Finishing vout life cycle work

Rémi Denis-Courmont remi at remlab.net
Tue May 7 11:45:17 CEST 2019


Hi,

To merge the locks, will you remove locking from within the UI event loop, or remove the event loop while holding the lock? How?

Le 6 mai 2019 19:15:48 GMT+03:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>Here is the new version
>https://code.videolan.org/tguillem/vlc/tree/vout-life/6
>
>This new MR fixes comments addressed in the previous MR.
>cf.
>https://code.videolan.org/tguillem/vlc/commit/1d4d6cbc54b87ac7cf4d40876f2c0a80e60f3c2c#note_34282
>
>Here are the big changes:
>
>- The commit "resource: reduce lock scope when starting the vout" has
>been removed, but the merge of the 2 input resource locks has been
>kept.
>
> - These 3 commits fix vout recycling:
>
>"resource: add input_resource_StopFreeVout"
>"vout: add vout_Pause"
>"input: fix vout recycling"
>
>- This commit "resource: respect vout order" fixes vout ordering from
>input resources.
>
>On Tue, Apr 30, 2019, at 10:41, Thomas Guillem wrote:
>> This set continue the previous work that was designed to always keep
>one valid
>> vout (the main one). Vout life cycle will behave like aout life
>cycle. This
>> will simplify variable/options handling.
>> 
>> The branch can be found on VideoLan gitlab:
>> https://code.videolan.org/tguillem/vlc/commits/vout-life/5
>> You can comment on it.
>> 
>> The first commit fixes a crash on macOS. Double vlc_mutex_destroy()
>doesn't seem
>> to be detected on Linux, even with Asan.
>> 
>> The second commit fixes asserts within the vout that can be triggered
>when vout
>> functions are called while it is stopped (window disable + no vout
>display
>> plugin).
>> 
>> The ressource commits change vout holding/creation from input
>resources. The
>> vout is now created from the first input_resource_Hold() call (if it
>was not
>> created by a decoder before).
>> 
>> The player commits remove previous hacks that was needed because the
>main vout
>> was not always created. Now that the player has always a valid vout,
>it can now
>> store variables/option on it.
>> 
>> The macOS/Qt commits change the way options (like filters) are passed
>to vouts.
>> Options are now saved on the main vout and not on the
>playlist/interface/player
>> anymore. This causes a change of behavior when there are several
>vouts (options
>> are now only applied to the main vout). If an user want options to be
>applied
>> on all future vouts, he can save the filter settings from the
>dialogs.  This
>> cause future var_Inherit to fetch the variable from the new saved
>config.
>> 
>> The last patch disable skins2 in order to be able to remove the
>legacy
>> playlist.
>> 
>> Thomas Guillem (20):
>>   vout: fix double mutex destroy
>>   vout: don't call vout_SizeWindow without a valid format
>>   resource: remove intermediate functions
>>   resource: merge both locks
>>   resource: reduce lock scope when starting the vout
>>   resource: add input_resource_HoldVoutLocked
>>   resource: always return a valid vout from HoldVout*()
>>   resource: don't allow to terminate vouts
>>   player: document vout lifecycle
>>   player: remove vlc_player_vout_SetFilter
>>   player: remove vlc_player_SetVideoSplitter
>>   player: change vout events
>>   hotkeys: re-indent after last commit
>>   test: player: test outputs
>>   qt: PlayerController: simplify getVout()
>>   qt: setup filter variables on the main vout
>>   macosx: setup effect variables on the main aout
>>   macosx: setup filter variables on the main vout
>>   gui: disable skins2
>>   remove vlc_playlist_legacy
>> 
>>  include/vlc_input.h                           |   5 -
>>  include/vlc_interface.h                       |   8 -
>>  include/vlc_player.h                          |  85 +-
>>  include/vlc_playlist_legacy.h                 | 429 ---------
>>  lib/media.c                                   |   1 -
>>  lib/playlist.c                                |   2 -
>>  modules/control/gestures.c                    |  20 +-
>>  modules/control/hotkeys.c                     |  42 +-
>>  modules/gui/Makefile.am                       |   2 +-
>>  .../coreinteraction/VLCVideoFilterHelper.m    |  76 +-
>>  .../panels/VLCAudioEffectsWindowController.m  | 225 ++---
>>  .../panels/VLCVideoEffectsWindowController.m  | 151 +--
>>  .../gui/macosx/playlist/VLCPlayerController.h |  14 -
>>  .../gui/macosx/playlist/VLCPlayerController.m |  26 +-
>>  modules/gui/qt/components/extended_panels.cpp |  43 +-
>>  .../gui/qt/components/player_controller.cpp   |  16 +-
>>  modules/gui/qt/dialogs/epg.cpp                |   1 -
>>  po/POTFILES.in                                |  10 -
>>  src/Makefile.am                               |  13 -
>>  src/check_symbols                             |   3 +-
>>  src/input/es_out.c                            |  26 -
>>  src/input/input.c                             |   1 -
>>  src/input/input_interface.h                   |   7 -
>>  src/input/meta.c                              |   1 -
>>  src/input/player.c                            |  73 +-
>>  src/input/resource.c                          | 198 ++--
>>  src/input/vlm.c                               |   1 -
>>  src/interface/interface.c                     |  36 -
>>  src/libvlc-module.c                           |   1 -
>>  src/libvlc.c                                  |   2 -
>>  src/libvlccore.sym                            |  44 -
>>  src/playlist_legacy/aout.c                    | 124 ---
>>  src/playlist_legacy/control.c                 | 147 ---
>>  src/playlist_legacy/engine.c                  | 501 ----------
>>  src/playlist_legacy/item.c                    | 883
>------------------
>>  src/playlist_legacy/loadsave.c                |  67 --
>>  src/playlist_legacy/playlist_internal.h       | 186 ----
>>  src/playlist_legacy/renderer.c                |  51 -
>>  src/playlist_legacy/search.c                  | 130 ---
>>  src/playlist_legacy/services_discovery.c      | 242 -----
>>  src/playlist_legacy/sort.c                    | 376 --------
>>  src/playlist_legacy/thread.c                  | 533 -----------
>>  src/playlist_legacy/tree.c                    | 427 ---------
>>  src/video_output/video_output.c               |   9 +-
>>  test/src/input/player.c                       |  71 +-
>>  45 files changed, 433 insertions(+), 4876 deletions(-)
>>  delete mode 100644 include/vlc_playlist_legacy.h
>>  delete mode 100644 src/playlist_legacy/aout.c
>>  delete mode 100644 src/playlist_legacy/control.c
>>  delete mode 100644 src/playlist_legacy/engine.c
>>  delete mode 100644 src/playlist_legacy/item.c
>>  delete mode 100644 src/playlist_legacy/loadsave.c
>>  delete mode 100644 src/playlist_legacy/playlist_internal.h
>>  delete mode 100644 src/playlist_legacy/renderer.c
>>  delete mode 100644 src/playlist_legacy/search.c
>>  delete mode 100644 src/playlist_legacy/services_discovery.c
>>  delete mode 100644 src/playlist_legacy/sort.c
>>  delete mode 100644 src/playlist_legacy/thread.c
>>  delete mode 100644 src/playlist_legacy/tree.c
>> 
>> -- 
>> 2.20.1
>> 
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20190507/a139a164/attachment.html>


More information about the vlc-devel mailing list