[vlc-devel] [PATCH 3/5] player: remove subtitle sync API

Thomas Guillem thomas at gllm.fr
Tue Jun 18 17:28:25 CEST 2019


It was only used by hotkeys that has now its own implementation.

This API is too confusing and hard to mantain, specially with the dual track
support comming.
---
 include/vlc_player.h | 33 ----------------
 src/input/player.c   | 90 --------------------------------------------
 src/libvlccore.sym   |  1 -
 3 files changed, 124 deletions(-)

diff --git a/include/vlc_player.h b/include/vlc_player.h
index 4058146005..403f405d52 100644
--- a/include/vlc_player.h
+++ b/include/vlc_player.h
@@ -318,19 +318,6 @@ enum vlc_player_abloop
     VLC_PLAYER_ABLOOP_B,
 };
 
-/**
- * Subtitle synchronisation
- *
- * @see vlc_player_SetSubtitleSync()
- */
-enum vlc_player_subtitle_sync
-{
-    VLC_PLAYER_SUBTITLE_SYNC_RESET,
-    VLC_PLAYER_SUBTITLE_SYNC_MARK_AUDIO,
-    VLC_PLAYER_SUBTITLE_SYNC_MARK_SUBTITLE,
-    VLC_PLAYER_SUBTITLE_SYNC_APPLY,
-};
-
 /**
  * Player lock type (normal or reentrant)
  */
@@ -2450,26 +2437,6 @@ vlc_player_SetAudioDelay(vlc_player_t *player, vlc_tick_t delay,
 VLC_API vlc_tick_t
 vlc_player_GetSubtitleDelay(vlc_player_t *player);
 
-/**
- * Set subtitle synchronisation
- *
- * This function can be used to synchronise subtitles with the audio.
- *
- * Call this function with VLC_PLAYER_SUBTITLE_SYNC_MARK_AUDIO when your hear a
- * voice you want to synchronise with subtitles. Then, call this function with
- * VLC_PLAYER_SUBTITLE_SYNC_MARK_SUBTITLE when the subtitle corresponding to
- * the voice is displayed. Finally call this function with
- * VLC_PLAYER_SUBTITLE_SYNC_APPLY to apply the subtitle delay. Calling this
- * function with VLC_PLAYER_SUBTITLE_SYNC_RESET will reset the subtitle
- * synchronisation and set a subtitle delay of 0.
- *
- * @param player locked player instance
- * @param sync synchronisation action
- */
-VLC_API void
-vlc_player_SetSubtitleSync(vlc_player_t *player,
-                           enum vlc_player_subtitle_sync sync);
-
 /**
  * Set the subtitle delay for the current media
  *
diff --git a/src/input/player.c b/src/input/player.c
index 54a39bed87..cdb170f167 100644
--- a/src/input/player.c
+++ b/src/input/player.c
@@ -117,12 +117,6 @@ struct vlc_player_input
     vlc_tick_t audio_delay;
     vlc_tick_t subtitle_delay;
 
-    struct
-    {
-        vlc_tick_t audio_time;
-        vlc_tick_t subtitle_time;
-    } subsync;
-
     vlc_player_program_vector program_vector;
     vlc_player_track_vector video_track_vector;
     vlc_player_track_vector audio_track_vector;
@@ -671,9 +665,6 @@ vlc_player_input_New(vlc_player_t *player, input_item_t *item)
 
     input->audio_delay = input->subtitle_delay = 0;
 
-    input->subsync.audio_time =
-    input->subsync.subtitle_time = VLC_TICK_INVALID;
-
     vlc_vector_init(&input->program_vector);
     vlc_vector_init(&input->video_track_vector);
     vlc_vector_init(&input->audio_track_vector);
@@ -2940,87 +2931,6 @@ vlc_player_GetSubtitleTextScale(vlc_player_t *player)
     return var_GetInteger(player, "sub-text-scale");
 }
 
-static void
-vlc_player_SubtitleSyncMarkAudio(vlc_player_t *player)
-{
-    struct vlc_player_input *input = vlc_player_get_input_locked(player);
-    if (!input)
-        return;
-    input->subsync.audio_time = vlc_tick_now();
-    vlc_player_vout_OSDMessage(player, _("Sub sync: bookmarked audio time"));
-}
-
-static void
-vlc_player_SubtitleSyncMarkSubtitle(vlc_player_t *player)
-{
-    struct vlc_player_input *input = vlc_player_get_input_locked(player);
-    if (!input)
-        return;
-    input->subsync.subtitle_time = vlc_tick_now();
-    vlc_player_vout_OSDMessage(player, _("Sub sync: bookmarked subtitle time"));
-}
-
-static void
-vlc_player_SubtitleSyncApply(vlc_player_t *player)
-{
-    struct vlc_player_input *input = vlc_player_get_input_locked(player);
-    if (!input)
-        return;
-    if (input->subsync.audio_time == VLC_TICK_INVALID ||
-        input->subsync.subtitle_time == VLC_TICK_INVALID)
-    {
-        vlc_player_vout_OSDMessage(player, _("Sub sync: set bookmarks first!"));
-        return;
-    }
-    vlc_tick_t delay =
-        input->subsync.audio_time - input->subsync.subtitle_time;
-    input->subsync.audio_time = VLC_TICK_INVALID;
-    input->subsync.subtitle_time = VLC_TICK_INVALID;
-    vlc_player_SetSubtitleDelayInternal(player, delay,
-                                        VLC_PLAYER_WHENCE_RELATIVE);
-
-    long long delay_ms = MS_FROM_VLC_TICK(delay);
-    long long totdelay_ms = MS_FROM_VLC_TICK(input->subtitle_delay + delay);
-    vlc_player_vout_OSDMessage(player, _("Sub sync: corrected %"PRId64
-                               " ms (total delay = %"PRId64" ms)"),
-                               delay_ms, totdelay_ms);
-}
-
-static void
-vlc_player_SubtitleSyncReset(vlc_player_t *player)
-{
-    struct vlc_player_input *input = vlc_player_get_input_locked(player);
-    if (!input)
-        return;
-    vlc_player_SetSubtitleDelayInternal(player, 0, VLC_PLAYER_WHENCE_ABSOLUTE);
-    input->subsync.audio_time = VLC_TICK_INVALID;
-    input->subsync.subtitle_time = VLC_TICK_INVALID;
-    vlc_player_vout_OSDMessage(player, _("Sub sync: delay reset"));
-}
-
-void
-vlc_player_SetSubtitleSync(vlc_player_t *player,
-                           enum vlc_player_subtitle_sync sync)
-{
-    switch (sync)
-    {
-        case VLC_PLAYER_SUBTITLE_SYNC_RESET:
-            vlc_player_SubtitleSyncReset(player);
-            break;
-        case VLC_PLAYER_SUBTITLE_SYNC_MARK_AUDIO:
-            vlc_player_SubtitleSyncMarkAudio(player);
-            break;
-        case VLC_PLAYER_SUBTITLE_SYNC_MARK_SUBTITLE:
-            vlc_player_SubtitleSyncMarkSubtitle(player);
-            break;
-        case VLC_PLAYER_SUBTITLE_SYNC_APPLY:
-            vlc_player_SubtitleSyncApply(player);
-            break;
-        default:
-            vlc_assert_unreachable();
-    }
-}
-
 vlc_tick_t
 vlc_player_GetSubtitleDelay(vlc_player_t *player)
 {
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index d6a524e248..8cca2bbc01 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -855,7 +855,6 @@ vlc_player_SetRecordingEnabled
 vlc_player_SetRenderer
 vlc_player_SetStartPaused
 vlc_player_SetSubtitleDelay
-vlc_player_SetSubtitleSync
 vlc_player_SetSubtitleTextScale
 vlc_player_SetTeletextEnabled
 vlc_player_SetTeletextTransparency
-- 
2.20.1



More information about the vlc-devel mailing list