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

Thomas Guillem thomas at gllm.fr
Tue Apr 30 10:40:58 CEST 2019


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



More information about the vlc-devel mailing list