[vlc-devel] [PATCH] lib: player: add unset tracks API
Rémi Denis-Courmont
remi at remlab.net
Fri Jan 24 18:23:17 CET 2020
Hi,
I'm pretty sure multiple video tracks are supported, or were until recently, and some files require it anyway.
Multiple audio tracks work fine (--sout-all --sout '#display'). There's just no ES out support to date.
Le 24 janvier 2020 18:20:48 GMT+02:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>The libvlc_media_player is no longer exposing the "disable" tracks.
>LibVLC
>users should now explicitly call these 3 new unset functions to disable
>a
>track category.
>
>These new functions don't support disabling a specific track of a
>category.
>This can be done in a separate commit by adding the following calls:
>
>libvlc_video_add_spu()
>libvlc_video_remove_spu()
>
>Since VLC support multi tracks for SPU only (for now).
>---
> include/vlc/libvlc_media_player.h | 25 +++++++++++++++++++++++++
> lib/audio.c | 8 ++++++++
> lib/libvlc.sym | 3 +++
> lib/video.c | 16 ++++++++++++++++
> 4 files changed, 52 insertions(+)
>
>diff --git a/include/vlc/libvlc_media_player.h
>b/include/vlc/libvlc_media_player.h
>index 7c72c9774b2..6648ba6a5ad 100644
>--- a/include/vlc/libvlc_media_player.h
>+++ b/include/vlc/libvlc_media_player.h
>@@ -1575,6 +1575,14 @@ LIBVLC_API libvlc_track_description_t *
> */
>LIBVLC_API int libvlc_video_set_spu( libvlc_media_player_t *p_mi, int
>i_spu );
>
>+/**
>+ * Unset the current subtitle
>+ *
>+ * \param p_mi the media player
>+ * \version LibVLC 4.0.0 and later
>+ */
>+LIBVLC_API void libvlc_video_unset_spu( libvlc_media_player_t *p_mi );
>+
> /**
>* Get the current subtitle delay. Positive values means subtitles are
>being
> * displayed later, negative values earlier.
>@@ -1792,6 +1800,15 @@ LIBVLC_API int libvlc_video_get_track(
>libvlc_media_player_t *p_mi );
> LIBVLC_API
>int libvlc_video_set_track( libvlc_media_player_t *p_mi, int i_track );
>
>+/**
>+ * Unset the current video track.
>+ *
>+ * \param p_mi media player
>+ * \version LibVLC 4.0.0 and later
>+ */
>+LIBVLC_API
>+void libvlc_video_unset_track( libvlc_media_player_t *p_mi );
>+
> /**
> * Take a snapshot of the current video window.
> *
>@@ -2213,6 +2230,14 @@ LIBVLC_API int libvlc_audio_get_track(
>libvlc_media_player_t *p_mi );
> */
>LIBVLC_API int libvlc_audio_set_track( libvlc_media_player_t *p_mi, int
>i_track );
>
>+/**
>+ * Unset the current audio track.
>+ *
>+ * \param p_mi media player
>+ * \version LibVLC 4.0.0 and later
>+ */
>+LIBVLC_API void libvlc_audio_unset_track( libvlc_media_player_t *p_mi
>);
>+
> /**
> * Get current audio channel.
> *
>diff --git a/lib/audio.c b/lib/audio.c
>index aab84cd47a9..36695fe06da 100644
>--- a/lib/audio.c
>+++ b/lib/audio.c
>@@ -394,6 +394,14 @@ end:
> return i_ret;
> }
>
>+void libvlc_audio_unset_track(libvlc_media_player_t *p_mi)
>+{
>+ vlc_player_t *player = p_mi->player;
>+ vlc_player_Lock(player);
>+ vlc_player_UnselectTrackCategory(player, AUDIO_ES);
>+ vlc_player_Unlock(player);
>+}
>+
>/*****************************************************************************
> * libvlc_audio_get_channel : Get the current audio channel
>*****************************************************************************/
>diff --git a/lib/libvlc.sym b/lib/libvlc.sym
>index d8fb0806bca..cc0535b868b 100644
>--- a/lib/libvlc.sym
>+++ b/lib/libvlc.sym
>@@ -39,6 +39,7 @@ libvlc_audio_set_format
> libvlc_audio_set_format_callbacks
> libvlc_audio_set_callbacks
> libvlc_audio_set_volume_callback
>+libvlc_audio_unset_track
> libvlc_chapter_descriptions_release
> libvlc_clock
> libvlc_dialog_dismiss
>@@ -253,6 +254,8 @@ libvlc_video_set_teletext
> libvlc_video_set_track
> libvlc_video_take_snapshot
> libvlc_video_new_viewpoint
>+libvlc_video_unset_track
>+libvlc_video_unset_spu
> libvlc_video_update_viewpoint
> libvlc_set_exit_handler
> libvlc_audio_filter_list_get
>diff --git a/lib/video.c b/lib/video.c
>index 6f8e6d7f59a..c667a0d07ac 100644
>--- a/lib/video.c
>+++ b/lib/video.c
>@@ -336,6 +336,14 @@ end:
> return i_ret;
> }
>
>+void libvlc_video_unset_spu(libvlc_media_player_t *p_mi)
>+{
>+ vlc_player_t *player = p_mi->player;
>+ vlc_player_Lock(player);
>+ vlc_player_UnselectTrackCategory(player, SPU_ES);
>+ vlc_player_Unlock(player);
>+}
>+
> int64_t libvlc_video_get_spu_delay( libvlc_media_player_t *p_mi )
> {
> vlc_player_t *player = p_mi->player;
>@@ -507,6 +515,14 @@ end:
> return i_ret;
> }
>
>+void libvlc_video_unset_track(libvlc_media_player_t *p_mi)
>+{
>+ vlc_player_t *player = p_mi->player;
>+ vlc_player_Lock(player);
>+ vlc_player_UnselectTrackCategory(player, VIDEO_ES);
>+ vlc_player_Unlock(player);
>+}
>+
>/******************************************************************************
>* libvlc_video_set_deinterlace : enable/disable/auto deinterlace and
>filter
>*****************************************************************************/
>--
>2.20.1
>
>_______________________________________________
>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/20200124/f8af29fe/attachment.html>
More information about the vlc-devel
mailing list