[vlc-devel] [PATCH 00/20] player: multiple track handling

Thomas Guillem thomas at gllm.fr
Thu Jun 20 17:23:43 CEST 2019


Hello,

Here is the result of the merge of Roland Bewick work about dual subtitles
handling.

I started from Roland's work but did some modifications, mainly for polishing
the player API regarding multiple tracks handling. For now, only multiple video
and dual subtitles are supported, but we won't have to modify the player API if
we add multiple audio support later.

I rejected the change regarding dual tracks selection in Qt. I didn't like the
way it interacted with the hotkeys plugin. Multiple tracks selection inside Qt
should be more graphical, like adding a checking in tracks selection to enable
multiple mode, then selecting a track will add it instead of replacing it.

The player gained finer controls with SPU tracks. Indeed, users can know which
vout is linked with wich SPU tracks, and if a SPU track is primary or secondary.

Regards,
Thomas

Roland Bewick (12):
  demux: add DEMUX_SET_ES_LIST control
  input: add INPUT_CONTROL_SET_ES_LIST
  player: add vlc_player_SelectEsIdList
  vout: spu: handle secondary channel order
  vout: spu: pass channel order to vout_ChangeSubMargin
  player: handle secondary-sub-margin notification
  libvlc: add secondary sub options
  libvlc: add a key to switch spu channel orders
  vout: handle secondary-sub-margin callback
  hotkeys: handle secondary subtitles options
  qt: add secondary sub margin/alignment preferences
  qt: add secondary subtitle delay synchronization

Thomas Guillem (8):
  input: add input_SetEsIdDelay
  es_out: handle all tracks delays in EsOutGetTracksDelay
  player: add vlc_player_SetEsIdDelay
  vout: spu: use mutex instead of atomic
  input: pass vout and spu_order via events
  player: rename vlc_player_GetVoutFromEsId
  player: get vout and spu channel order from SPU es_ids
  qt: re-indent after last commit

 include/vlc_actions.h                         |   2 +
 include/vlc_demux.h                           |   3 +-
 include/vlc_es_out.h                          |   1 +
 include/vlc_player.h                          |  93 +++++++++-
 include/vlc_vout.h                            |  10 +
 lib/media_player.c                            |   9 +-
 modules/access/bluray.c                       |   3 +
 modules/control/gestures.c                    |   8 +-
 modules/control/hotkeys.c                     | 154 +++++++++++++--
 modules/demux/adaptive/plumbing/FakeESOut.cpp |   1 +
 modules/demux/asf/asf.c                       |   3 +
 modules/demux/mock.c                          |   2 +
 modules/demux/mpeg/ts.c                       |  10 +-
 .../gui/macosx/playlist/VLCPlayerController.m |   7 +-
 modules/gui/qt/components/extended_panels.cpp |  44 ++++-
 modules/gui/qt/components/extended_panels.hpp |   2 +
 .../gui/qt/components/player_controller.cpp   |  98 ++++++++--
 .../gui/qt/components/player_controller.hpp   |   4 +
 .../gui/qt/components/player_controller_p.hpp |   6 +-
 .../gui/qt/components/simple_preferences.cpp  |   3 +
 modules/gui/qt/ui/sprefs_subtitles.ui         |  91 +++++++++
 .../chromecast/chromecast_demux.cpp           |   1 +
 src/input/decoder.c                           |  40 +++-
 src/input/demux.c                             |   1 +
 src/input/es_out.c                            | 100 +++++++++-
 src/input/es_out.h                            |   8 +
 src/input/es_out_timeshift.c                  |   2 +
 src/input/event.h                             |   9 +
 src/input/input.c                             |  49 +++++
 src/input/input_internal.h                    |  23 +++
 src/input/player.c                            | 175 +++++++++++++++++-
 src/libvlc-module.c                           |  29 +++
 src/libvlccore.sym                            |   6 +-
 src/misc/actions.c                            |   1 +
 src/video_output/video_output.c               |  10 +-
 src/video_output/vout_internal.h              |  10 +-
 src/video_output/vout_intf.c                  |  22 ++-
 src/video_output/vout_subpictures.c           | 107 ++++++++---
 test/src/input/player.c                       |   5 +-
 39 files changed, 1056 insertions(+), 96 deletions(-)

-- 
2.20.1



More information about the vlc-devel mailing list