<!DOCTYPE html><html><head><title></title><style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div><br></div><div><br></div><div>On Fri, Jan 24, 2020, at 18:23, Rémi Denis-Courmont wrote:<br></div><blockquote type="cite" id="qt"><div>Hi,<br></div><div><br></div><div>I'm pretty sure multiple video tracks are supported, or were until recently, and some files require it anyway.<br></div></blockquote><div><br></div><div>Yes indeed. </div><div><br></div><div><br></div><blockquote type="cite" id="qt"><div><br></div><div>Multiple audio tracks work fine (--sout-all --sout '#display'). There's just no ES out support to date.<br></div></blockquote><div>Proper multiple aout could need a separation from device and stream on all modules (like for wasapi). Then a device could have multiple streams. The harder will be the aout API split and interface changes. </div><div><br></div><div><br></div><blockquote type="cite" id="qt"><div><br></div><div class="qt-gmail_quote"><div>Le 24 janvier 2020 18:20:48 GMT+02:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div><blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204, 204, 204);padding-left:1ex;" class="qt-gmail_quote"><pre class="qt-k9mail"><div>The libvlc_media_player is no longer exposing the "disable" tracks. LibVLC<br></div><div>users should now explicitly call these 3 new unset functions to disable a<br></div><div>track category.<br></div><div><br></div><div>These new functions don't support disabling a specific track of a category.<br></div><div>This can be done in a separate commit by adding the following calls:<br></div><div><br></div><div>libvlc_video_add_spu()<br></div><div>libvlc_video_remove_spu()<br></div><div><br></div><div>Since VLC support multi tracks for SPU only (for now).<hr> include/vlc/libvlc_media_player.h | 25 +++++++++++++++++++++++++<br></div><div> lib/audio.c                       |  8 ++++++++<br></div><div> lib/libvlc.sym                    |  3 +++<br></div><div> lib/video.c                       | 16 ++++++++++++++++<br></div><div> 4 files changed, 52 insertions(+)<br></div><div><br></div><div>diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h<br></div><div>index 7c72c9774b2..6648ba6a5ad 100644<br></div><div>--- a/include/vlc/libvlc_media_player.h<br></div><div>+++ b/include/vlc/libvlc_media_player.h<br></div><div>@@ -1575,6 +1575,14 @@ LIBVLC_API libvlc_track_description_t *<br></div><div>  */<br></div><div> LIBVLC_API int libvlc_video_set_spu( libvlc_media_player_t *p_mi, int i_spu );<br></div><div> <br></div><div>+/**<br></div><div>+ * Unset the current subtitle<br></div><div>+ *<br></div><div>+ * \param p_mi the media player<br></div><div>+ * \version LibVLC 4.0.0 and later<br></div><div>+ */<br></div><div>+LIBVLC_API void libvlc_video_unset_spu( libvlc_media_player_t *p_mi );<br></div><div>+<br></div><div> /**<br></div><div>  * Get the current subtitle delay. Positive values means subtitles are being<br></div><div>  * displayed later, negative values earlier.<br></div><div>@@ -1792,6 +1800,15 @@ LIBVLC_API int libvlc_video_get_track( libvlc_media_player_t *p_mi );<br></div><div> LIBVLC_API<br></div><div> int libvlc_video_set_track( libvlc_media_player_t *p_mi, int i_track );<br></div><div> <br></div><div>+/**<br></div><div>+ * Unset the current video track.<br></div><div>+ *<br></div><div>+ * \param p_mi media player<br></div><div>+ * \version LibVLC 4.0.0 and later<br></div><div>+ */<br></div><div>+LIBVLC_API<br></div><div>+void libvlc_video_unset_track( libvlc_media_player_t *p_mi );<br></div><div>+<br></div><div> /**<br></div><div>  * Take a snapshot of the current video window.<br></div><div>  *<br></div><div>@@ -2213,6 +2230,14 @@ LIBVLC_API int libvlc_audio_get_track( libvlc_media_player_t *p_mi );<br></div><div>  */<br></div><div> LIBVLC_API int libvlc_audio_set_track( libvlc_media_player_t *p_mi, int i_track );<br></div><div> <br></div><div>+/**<br></div><div>+ * Unset the current audio track.<br></div><div>+ *<br></div><div>+ * \param p_mi media player<br></div><div>+ * \version LibVLC 4.0.0 and later<br></div><div>+ */<br></div><div>+LIBVLC_API void libvlc_audio_unset_track( libvlc_media_player_t *p_mi );<br></div><div>+<br></div><div> /**<br></div><div>  * Get current audio channel.<br></div><div>  *<br></div><div>diff --git a/lib/audio.c b/lib/audio.c<br></div><div>index aab84cd47a9..36695fe06da 100644<br></div><div>--- a/lib/audio.c<br></div><div>+++ b/lib/audio.c<br></div><div>@@ -394,6 +394,14 @@ end:<br></div><div>     return i_ret;<br></div><div> }<br></div><div> <br></div><div>+void libvlc_audio_unset_track(libvlc_media_player_t *p_mi)<br></div><div>+{<br></div><div>+    vlc_player_t *player = p_mi->player;<br></div><div>+    vlc_player_Lock(player);<br></div><div>+    vlc_player_UnselectTrackCategory(player, AUDIO_ES);<br></div><div>+    vlc_player_Unlock(player);<br></div><div>+}<br></div><div>+<br></div><div> /*****************************************************************************<br></div><div>  * libvlc_audio_get_channel : Get the current audio channel<br></div><div>  *****************************************************************************/<br></div><div>diff --git a/lib/libvlc.sym b/lib/libvlc.sym<br></div><div>index d8fb0806bca..cc0535b868b 100644<br></div><div>--- a/lib/libvlc.sym<br></div><div>+++ b/lib/libvlc.sym<br></div><div>@@ -39,6 +39,7 @@ libvlc_audio_set_format<br></div><div> libvlc_audio_set_format_callbacks<br></div><div> libvlc_audio_set_callbacks<br></div><div> libvlc_audio_set_volume_callback<br></div><div>+libvlc_audio_unset_track<br></div><div> libvlc_chapter_descriptions_release<br></div><div> libvlc_clock<br></div><div> libvlc_dialog_dismiss<br></div><div>@@ -253,6 +254,8 @@ libvlc_video_set_teletext<br></div><div> libvlc_video_set_track<br></div><div> libvlc_video_take_snapshot<br></div><div> libvlc_video_new_viewpoint<br></div><div>+libvlc_video_unset_track<br></div><div>+libvlc_video_unset_spu<br></div><div> libvlc_video_update_viewpoint<br></div><div> libvlc_set_exit_handler<br></div><div> libvlc_audio_filter_list_get<br></div><div>diff --git a/lib/video.c b/lib/video.c<br></div><div>index 6f8e6d7f59a..c667a0d07ac 100644<br></div><div>--- a/lib/video.c<br></div><div>+++ b/lib/video.c<br></div><div>@@ -336,6 +336,14 @@ end:<br></div><div>     return i_ret;<br></div><div> }<br></div><div> <br></div><div>+void libvlc_video_unset_spu(libvlc_media_player_t *p_mi)<br></div><div>+{<br></div><div>+    vlc_player_t *player = p_mi->player;<br></div><div>+    vlc_player_Lock(player);<br></div><div>+    vlc_player_UnselectTrackCategory(player, SPU_ES);<br></div><div>+    vlc_player_Unlock(player);<br></div><div>+}<br></div><div>+<br></div><div> int64_t libvlc_video_get_spu_delay( libvlc_media_player_t *p_mi )<br></div><div> {<br></div><div>     vlc_player_t *player = p_mi->player;<br></div><div>@@ -507,6 +515,14 @@ end:<br></div><div>     return i_ret;<br></div><div> }<br></div><div> <br></div><div>+void libvlc_video_unset_track(libvlc_media_player_t *p_mi)<br></div><div>+{<br></div><div>+    vlc_player_t *player = p_mi->player;<br></div><div>+    vlc_player_Lock(player);<br></div><div>+    vlc_player_UnselectTrackCategory(player, VIDEO_ES);<br></div><div>+    vlc_player_Unlock(player);<br></div><div>+}<br></div><div>+<br></div><div> /******************************************************************************<br></div><div>  * libvlc_video_set_deinterlace : enable/disable/auto deinterlace and filter<br></div><div>  *****************************************************************************/<br></div></pre></blockquote></div><div><br></div><div>-- <br></div><div>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div><div>_______________________________________________<br></div><div>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div>https://mailman.videolan.org/listinfo/vlc-devel<br></div></blockquote><div><br></div></body></html>