[vlc-devel] [PATCH 10/18] input: remove bookmark handling

Thomas Guillem thomas at gllm.fr
Fri May 10 16:03:14 CEST 2019


It is unusable now, since there is no player API for it. It need to be handled
by the media library module.
---
 include/vlc_input.h        |   9 ---
 src/input/control.c        | 123 -------------------------------------
 src/input/input.c          |  90 +--------------------------
 src/input/input_internal.h |   5 --
 4 files changed, 1 insertion(+), 226 deletions(-)

diff --git a/include/vlc_input.h b/include/vlc_input.h
index 7d417b5388..4da5d09c6f 100644
--- a/include/vlc_input.h
+++ b/include/vlc_input.h
@@ -552,15 +552,6 @@ enum input_query_e
     /** Activate disc Root Menu. res=can fail */
     INPUT_NAV_MENU,
 
-    /* bookmarks */
-    INPUT_GET_BOOKMARK,    /* arg1= seekpoint_t *               res=can fail */
-    INPUT_GET_BOOKMARKS,   /* arg1= seekpoint_t *** arg2= int * res=can fail */
-    INPUT_CLEAR_BOOKMARKS, /* res=can fail */
-    INPUT_ADD_BOOKMARK,    /* arg1= seekpoint_t *  res=can fail   */
-    INPUT_CHANGE_BOOKMARK, /* arg1= seekpoint_t * arg2= int * res=can fail   */
-    INPUT_DEL_BOOKMARK,    /* arg1= seekpoint_t *  res=can fail   */
-    INPUT_SET_BOOKMARK,    /* arg1= int  res=can fail    */
-
     /* On the fly input slave */
     INPUT_ADD_SLAVE,       /* arg1= enum slave_type, arg2= const char *,
                             * arg3= bool forced, arg4= bool notify,
diff --git a/src/input/control.c b/src/input/control.c
index e3401044a9..14d871072d 100644
--- a/src/input/control.c
+++ b/src/input/control.c
@@ -81,129 +81,6 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
                                + INPUT_CONTROL_NAV_ACTIVATE, NULL );
             return VLC_SUCCESS;
 
-        case INPUT_ADD_BOOKMARK:
-            p_bkmk = va_arg( args, seekpoint_t * );
-            p_bkmk = vlc_seekpoint_Duplicate( p_bkmk );
-
-            vlc_mutex_lock( &priv->p_item->lock );
-            if( !p_bkmk->psz_name )
-            {
-                 if( asprintf( &p_bkmk->psz_name, _("Bookmark %i"),
-                               priv->i_bookmark ) == -1 )
-                     p_bkmk->psz_name = NULL;
-            }
-
-            if( p_bkmk->psz_name )
-                TAB_APPEND( priv->i_bookmark, priv->pp_bookmark, p_bkmk );
-            else
-            {
-                vlc_seekpoint_Delete( p_bkmk );
-                p_bkmk = NULL;
-            }
-            vlc_mutex_unlock( &priv->p_item->lock );
-
-            input_SendEventBookmark( p_input );
-
-            return p_bkmk ? VLC_SUCCESS : VLC_EGENERIC;
-
-        case INPUT_CHANGE_BOOKMARK:
-            p_bkmk = va_arg( args, seekpoint_t * );
-            i_bkmk = va_arg( args, int );
-
-            vlc_mutex_lock( &priv->p_item->lock );
-            if( i_bkmk < priv->i_bookmark )
-            {
-                p_bkmk = vlc_seekpoint_Duplicate( p_bkmk );
-                if( p_bkmk )
-                {
-                    vlc_seekpoint_Delete( priv->pp_bookmark[i_bkmk] );
-                    priv->pp_bookmark[i_bkmk] = p_bkmk;
-                }
-            }
-            else p_bkmk = NULL;
-            vlc_mutex_unlock( &priv->p_item->lock );
-
-            input_SendEventBookmark( p_input );
-
-            return p_bkmk ? VLC_SUCCESS : VLC_EGENERIC;
-
-        case INPUT_DEL_BOOKMARK:
-            i_bkmk = va_arg( args, int );
-
-            vlc_mutex_lock( &priv->p_item->lock );
-            if( i_bkmk < priv->i_bookmark )
-            {
-                p_bkmk = priv->pp_bookmark[i_bkmk];
-                TAB_REMOVE( priv->i_bookmark, priv->pp_bookmark, p_bkmk );
-                vlc_seekpoint_Delete( p_bkmk );
-
-                vlc_mutex_unlock( &priv->p_item->lock );
-
-                input_SendEventBookmark( p_input );
-
-                return VLC_SUCCESS;
-            }
-            vlc_mutex_unlock( &priv->p_item->lock );
-
-            return VLC_EGENERIC;
-
-        case INPUT_GET_BOOKMARKS:
-            ppp_bkmk = va_arg( args, seekpoint_t *** );
-            pi_bkmk = va_arg( args, int * );
-
-            vlc_mutex_lock( &priv->p_item->lock );
-            if( priv->i_bookmark )
-            {
-                int i;
-
-                *pi_bkmk = priv->i_bookmark;
-                *ppp_bkmk = vlc_alloc( priv->i_bookmark, sizeof(seekpoint_t *) );
-                for( i = 0; i < priv->i_bookmark; i++ )
-                {
-                    (*ppp_bkmk)[i] =
-                        vlc_seekpoint_Duplicate( input_priv(p_input)->pp_bookmark[i] );
-                }
-
-                vlc_mutex_unlock( &priv->p_item->lock );
-                return VLC_SUCCESS;
-            }
-            else
-            {
-                *ppp_bkmk = NULL;
-                *pi_bkmk = 0;
-
-                vlc_mutex_unlock( &priv->p_item->lock );
-                return VLC_EGENERIC;
-            }
-            break;
-
-        case INPUT_CLEAR_BOOKMARKS:
-            vlc_mutex_lock( &priv->p_item->lock );
-            for( int i = 0; i < priv->i_bookmark; ++i )
-                vlc_seekpoint_Delete( priv->pp_bookmark[i] );
-
-            TAB_CLEAN( priv->i_bookmark, priv->pp_bookmark );
-            vlc_mutex_unlock( &priv->p_item->lock );
-
-            input_SendEventBookmark( p_input );
-            return VLC_SUCCESS;
-
-        case INPUT_SET_BOOKMARK:
-            i_bkmk = va_arg( args, int );
-
-            val.i_int = i_bkmk;
-            input_ControlPushHelper( p_input, INPUT_CONTROL_SET_BOOKMARK, &val );
-
-            return VLC_SUCCESS;
-
-        case INPUT_GET_BOOKMARK:
-            p_bkmk = va_arg( args, seekpoint_t * );
-
-            vlc_mutex_lock( &priv->p_item->lock );
-            *p_bkmk = priv->bookmark;
-            vlc_mutex_unlock( &priv->p_item->lock );
-            return VLC_SUCCESS;
-
         case INPUT_ADD_SLAVE:
         {
             enum slave_type type =  va_arg( args, enum slave_type );
diff --git a/src/input/input.c b/src/input/input.c
index 6759b72f73..4aa89c8091 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -330,8 +330,6 @@ static input_thread_t *Create( vlc_object_t *p_parent,
     priv->is_stopped = false;
     priv->b_recording = false;
     priv->rate = 1.f;
-    memset( &priv->bookmark, 0, sizeof(priv->bookmark) );
-    TAB_INIT( priv->i_bookmark, priv->pp_bookmark );
     TAB_INIT( priv->i_attachment, priv->attachment );
     priv->attachment_demux = NULL;
     priv->p_sout   = NULL;
@@ -426,58 +424,6 @@ static input_thread_t *Create( vlc_object_t *p_parent,
         VLC_TICK_FROM_MS( var_GetInteger( p_input, "audio-desync" ) );
     priv->i_spu_delay = 0;
 
-    /* */
-    if( !priv->b_preparsing )
-    {
-        char *psz_bookmarks = var_GetNonEmptyString( p_input, "bookmarks" );
-        if( psz_bookmarks )
-        {
-            /* FIXME: have a common cfg parsing routine used by sout and others */
-            char *psz_parser, *psz_start, *psz_end;
-            psz_parser = psz_bookmarks;
-            while( (psz_start = strchr( psz_parser, '{' ) ) )
-            {
-                 seekpoint_t *p_seekpoint;
-                 char backup;
-                 psz_start++;
-                 psz_end = strchr( psz_start, '}' );
-                 if( !psz_end ) break;
-                 psz_parser = psz_end + 1;
-                 backup = *psz_parser;
-                 *psz_parser = 0;
-                 *psz_end = ',';
-
-                 p_seekpoint = vlc_seekpoint_New();
-
-                 if( unlikely( p_seekpoint == NULL ) )
-                     break;
-
-                 while( (psz_end = strchr( psz_start, ',' ) ) )
-                 {
-                     *psz_end = 0;
-                     if( !strncmp( psz_start, "name=", 5 ) )
-                     {
-                         free( p_seekpoint->psz_name );
-
-                         p_seekpoint->psz_name = strdup(psz_start + 5);
-                     }
-                     else if( !strncmp( psz_start, "time=", 5 ) )
-                     {
-                         p_seekpoint->i_time_offset = vlc_tick_from_sec(atof(psz_start + 5));
-                     }
-                     psz_start = psz_end + 1;
-                }
-                msg_Dbg( p_input, "adding bookmark: %s, time=%"PRId64,
-                                  p_seekpoint->psz_name,
-                                  p_seekpoint->i_time_offset );
-                input_Control( p_input, INPUT_ADD_BOOKMARK, p_seekpoint );
-                vlc_seekpoint_Delete( p_seekpoint );
-                *psz_parser = backup;
-            }
-            free( psz_bookmarks );
-        }
-    }
-
     /* Remove 'Now playing' info as it is probably outdated */
     input_item_SetNowPlaying( p_item, NULL );
     input_item_SetESNowPlaying( p_item, NULL );
@@ -737,9 +683,7 @@ static void MainLoopStatistics( input_thread_t *p_input )
     if( priv->stats != NULL )
         input_stats_Compute( priv->stats, &new_stats );
 
-    /* update current bookmark */
     vlc_mutex_lock( &priv->p_item->lock );
-    priv->bookmark.i_time_offset = i_time;
     if( priv->stats != NULL )
         *priv->p_item->p_stats = new_stats;
     vlc_mutex_unlock( &priv->p_item->lock );
@@ -1521,11 +1465,6 @@ static void End( input_thread_t * p_input )
         priv->attachment_demux = NULL;
     }
 
-    /* clean bookmarks */
-    for( int i = 0; i < priv->i_bookmark; ++i )
-        vlc_seekpoint_Delete( priv->pp_bookmark[i] );
-    TAB_CLEAN( priv->i_bookmark, priv->pp_bookmark );
-
     vlc_mutex_unlock( &input_priv(p_input)->p_item->lock );
 
     /* */
@@ -1587,8 +1526,7 @@ static size_t ControlGetReducedIndexLocked( input_thread_t *p_input )
               i_ct == INPUT_CONTROL_SET_TIME ||
               i_ct == INPUT_CONTROL_SET_PROGRAM ||
               i_ct == INPUT_CONTROL_SET_TITLE ||
-              i_ct == INPUT_CONTROL_SET_SEEKPOINT ||
-              i_ct == INPUT_CONTROL_SET_BOOKMARK ) )
+              i_ct == INPUT_CONTROL_SET_SEEKPOINT ) )
         {
             continue;
         }
@@ -1671,7 +1609,6 @@ static bool ControlIsSeekRequest( int i_type )
     case INPUT_CONTROL_SET_SEEKPOINT:
     case INPUT_CONTROL_SET_SEEKPOINT_NEXT:
     case INPUT_CONTROL_SET_SEEKPOINT_PREV:
-    case INPUT_CONTROL_SET_BOOKMARK:
     case INPUT_CONTROL_NAV_ACTIVATE:
     case INPUT_CONTROL_NAV_UP:
     case INPUT_CONTROL_NAV_DOWN:
@@ -2317,31 +2254,6 @@ static bool Control( input_thread_t *p_input,
             b_force_update = true;
             break;
 
-        case INPUT_CONTROL_SET_BOOKMARK:
-        {
-            vlc_tick_t time_offset = -1;
-            int bookmark = param.val.i_int;
-
-            vlc_mutex_lock( &priv->p_item->lock );
-            if( bookmark >= 0 && bookmark < priv->i_bookmark )
-            {
-                const seekpoint_t *p_bookmark = priv->pp_bookmark[bookmark];
-                time_offset = p_bookmark->i_time_offset;
-            }
-            vlc_mutex_unlock( &priv->p_item->lock );
-
-            if( time_offset < 0 )
-            {
-                msg_Err( p_input, "invalid bookmark %d", bookmark );
-                break;
-            }
-
-            b_force_update =
-                Control( p_input, INPUT_CONTROL_SET_TIME,
-                         (input_control_param_t) { .time.i_val = time_offset,
-                                                   .time.b_fast_seek = false } );
-            break;
-        }
         case INPUT_CONTROL_SET_RENDERER:
         {
 #ifdef ENABLE_SOUT
diff --git a/src/input/input_internal.h b/src/input/input_internal.h
index cc70b44b6d..cde2f1fa58 100644
--- a/src/input/input_internal.h
+++ b/src/input/input_internal.h
@@ -156,11 +156,6 @@ typedef struct input_thread_private_t
     int i_title_offset;
     int i_seekpoint_offset;
 
-    /* User bookmarks FIXME won't be easy with multiples input */
-    seekpoint_t bookmark;
-    int         i_bookmark;
-    seekpoint_t **pp_bookmark;
-
     /* Input attachment */
     int i_attachment;
     input_attachment_t **attachment;
-- 
2.20.1



More information about the vlc-devel mailing list