<div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 21 Jun 2019 at 9:05 PM, Thomas Guillem <<a href="mailto:thomas@gllm.fr">thomas@gllm.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Here is a new version taking into account Roland remarks:<br>
<br>
<a href="https://code.videolan.org/tguillem/vlc/commits/multiple-es/4" rel="noreferrer" target="_blank">https://code.videolan.org/tguillem/vlc/commits/multiple-es/4</a><br>
<br>
And a diff between the new branch and the old one: <a href="https://code.videolan.org/snippets/983" rel="noreferrer" target="_blank">https://code.videolan.org/snippets/983</a><br>
<br>
What changed<br>
<br>
 - Rename vlc_spu_channel_order to vlc_vout_order:<br>
The order can be attributed to SPU and VIDEO ESes. For a VIDEO_ES, the primary ES is the ES using the main vout (most likely embebed inside the UI (when supported)).<br>
<br>
 - Merge input vout event with the spu one<br>
<br>
 - Add vlc_player_AddEsId():<br>
An helper that will use vlc_player_SelectEsIdList(): way more convenient to just add one track.</blockquote><div dir="auto"><br></div><div dir="auto">The name AddEsId is a bit vague as to what the function does. </div><div dir="auto"><br></div><div dir="auto">Maybe AddEsIdToSelection?</div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
 - vlc_player_SelectEsIdList() and vlc_player_AddEsId return the number of selected tracks.</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
 - vlc_player_SelectEsIdList() now handle the limit of tracks per category. It won't try to select more than 2  subtitles tracks for example.<br>
<br>
Regards,<br>
<br>
On Fri, Jun 21, 2019, at 11:23, Thomas Guillem wrote:<br>
> <br>
> <br>
> On Fri, Jun 21, 2019, at 07:59, Roland Bewick wrote:<br>
> > <br>
> > On 20/06/2019 10:23 PM, Thomas Guillem wrote:<br>
> > > Hello,<br>
> > ><br>
> > > Here is the result of the merge of Roland Bewick work about dual subtitles<br>
> > > handling.<br>
> > ><br>
> > > I started from Roland's work but did some modifications, mainly for polishing<br>
> > > the player API regarding multiple tracks handling. For now, only multiple video<br>
> > > and dual subtitles are supported, but we won't have to modify the player API if<br>
> > > we add multiple audio support later.<br>
> > ><br>
> > > I rejected the change regarding dual tracks selection in Qt. I didn't like the<br>
> > > way it interacted with the hotkeys plugin. Multiple tracks selection inside Qt<br>
> > > should be more graphical, like adding a checking in tracks selection to enable<br>
> > > multiple mode, then selecting a track will add it instead of replacing it.<br>
> > <br>
> > That's what I added, see a gif: <br>
> > <a href="https://gyazo.com/5520dee77935f14020cb879a791e24c1" rel="noreferrer" target="_blank">https://gyazo.com/5520dee77935f14020cb879a791e24c1</a><br>
> <br>
> Nice, it should also be integrated in the tracks button bellow the seek bar.</blockquote><div dir="auto"><br></div><div dir="auto">That’s a good idea.</div><div dir="auto"><br></div><div dir="auto">When you want to add the toggle button to the subtitle menu you can refer to the commit from my final patch.</div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> <br>
> > <br>
> > The only issue was that the checkboxes show rather than radio buttons <br>
> > when dual subtitles is disabled. But that is an existing bug.<br>
> > <br>
> > Now that you've made the changes to retrieve the spu_order for a <br>
> > vlc_es_id, I think the interaction between the QT interface and hotkeys <br>
> > plugin is minimal. In fact, as far as I can see the only requirement is <br>
> > for the QT interface to listen to track selection changes and toggle the <br>
> > "Enable Dual Subtitles" checkbox if there is a track with <br>
> > VLC_SPU_CHANNEL_ORDER_SECONDARY.<br>
> <br>
> <br>
> > <br>
> > Other than that, I'm happy with your changes. Thank you for picking up <br>
> > my work and seeing it to completion :-)<br>
> > <br>
> > ><br>
> > > The player gained finer controls with SPU tracks. Indeed, users can know which<br>
> > > vout is linked with wich SPU tracks, and if a SPU track is primary or secondary.<br>
> > ><br>
> > > Regards,<br>
> > > Thomas<br>
> > ><br>
> > > Roland Bewick (12):<br>
> > >    demux: add DEMUX_SET_ES_LIST control<br>
> > >    input: add INPUT_CONTROL_SET_ES_LIST<br>
> > >    player: add vlc_player_SelectEsIdList<br>
> > >    vout: spu: handle secondary channel order<br>
> > >    vout: spu: pass channel order to vout_ChangeSubMargin<br>
> > >    player: handle secondary-sub-margin notification<br>
> > >    libvlc: add secondary sub options<br>
> > >    libvlc: add a key to switch spu channel orders<br>
> > >    vout: handle secondary-sub-margin callback<br>
> > >    hotkeys: handle secondary subtitles options<br>
> > >    qt: add secondary sub margin/alignment preferences<br>
> > >    qt: add secondary subtitle delay synchronization<br>
> > ><br>
> > > Thomas Guillem (8):<br>
> > >    input: add input_SetEsIdDelay<br>
> > >    es_out: handle all tracks delays in EsOutGetTracksDelay<br>
> > >    player: add vlc_player_SetEsIdDelay<br>
> > >    vout: spu: use mutex instead of atomic<br>
> > >    input: pass vout and spu_order via events<br>
> > >    player: rename vlc_player_GetVoutFromEsId<br>
> > >    player: get vout and spu channel order from SPU es_ids<br>
> > >    qt: re-indent after last commit<br>
> > ><br>
> > >   include/vlc_actions.h                         |   2 +<br>
> > >   include/vlc_demux.h                           |   3 +-<br>
> > >   include/vlc_es_out.h                          |   1 +<br>
> > >   include/vlc_player.h                          |  93 +++++++++-<br>
> > >   include/vlc_vout.h                            |  10 +<br>
> > >   lib/media_player.c                            |   9 +-<br>
> > >   modules/access/bluray.c                       |   3 +<br>
> > >   modules/control/gestures.c                    |   8 +-<br>
> > >   modules/control/hotkeys.c                     | 154 +++++++++++++--<br>
> > >   modules/demux/adaptive/plumbing/FakeESOut.cpp |   1 +<br>
> > >   modules/demux/asf/asf.c                       |   3 +<br>
> > >   modules/demux/mock.c                          |   2 +<br>
> > >   modules/demux/mpeg/ts.c                       |  10 +-<br>
> > >   .../gui/macosx/playlist/VLCPlayerController.m |   7 +-<br>
> > >   modules/gui/qt/components/extended_panels.cpp |  44 ++++-<br>
> > >   modules/gui/qt/components/extended_panels.hpp |   2 +<br>
> > >   .../gui/qt/components/player_controller.cpp   |  98 ++++++++--<br>
> > >   .../gui/qt/components/player_controller.hpp   |   4 +<br>
> > >   .../gui/qt/components/player_controller_p.hpp |   6 +-<br>
> > >   .../gui/qt/components/simple_preferences.cpp  |   3 +<br>
> > >   modules/gui/qt/ui/sprefs_subtitles.ui         |  91 +++++++++<br>
> > >   .../chromecast/chromecast_demux.cpp           |   1 +<br>
> > >   src/input/decoder.c                           |  40 +++-<br>
> > >   src/input/demux.c                             |   1 +<br>
> > >   src/input/es_out.c                            | 100 +++++++++-<br>
> > >   src/input/es_out.h                            |   8 +<br>
> > >   src/input/es_out_timeshift.c                  |   2 +<br>
> > >   src/input/event.h                             |   9 +<br>
> > >   src/input/input.c                             |  49 +++++<br>
> > >   src/input/input_internal.h                    |  23 +++<br>
> > >   src/input/player.c                            | 175 +++++++++++++++++-<br>
> > >   src/libvlc-module.c                           |  29 +++<br>
> > >   src/libvlccore.sym                            |   6 +-<br>
> > >   src/misc/actions.c                            |   1 +<br>
> > >   src/video_output/video_output.c               |  10 +-<br>
> > >   src/video_output/vout_internal.h              |  10 +-<br>
> > >   src/video_output/vout_intf.c                  |  22 ++-<br>
> > >   src/video_output/vout_subpictures.c           | 107 ++++++++---<br>
> > >   test/src/input/player.c                       |   5 +-<br>
> > >   39 files changed, 1056 insertions(+), 96 deletions(-)<br>
> > ><br>
> > _______________________________________________<br>
> > vlc-devel mailing list<br>
> > To unsubscribe or modify your subscription options:<br>
> > <a href="https://mailman.videolan.org/listinfo/vlc-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/vlc-devel</a><br>
> _______________________________________________<br>
> vlc-devel mailing list<br>
> To unsubscribe or modify your subscription options:<br>
> <a href="https://mailman.videolan.org/listinfo/vlc-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/vlc-devel</a><br>
_______________________________________________<br>
vlc-devel mailing list<br>
To unsubscribe or modify your subscription options:<br>
<a href="https://mailman.videolan.org/listinfo/vlc-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/vlc-devel</a></blockquote></div></div>