[vlc-devel] [PATCH] input_clock: remove unused input_clock_ConvertTS

Steve Lhomme robux4 at ycbcr.xyz
Thu Aug 13 14:09:36 CEST 2020


Also remove internal i_ts_max which is always VLC_TICK_INVALID, and yet was
used as a valid value.
---
 src/clock/input_clock.c | 68 +----------------------------------------
 src/clock/input_clock.h | 20 +-----------
 2 files changed, 2 insertions(+), 86 deletions(-)

diff --git a/src/clock/input_clock.c b/src/clock/input_clock.c
index ac891d8cb99..a143f02fc6f 100644
--- a/src/clock/input_clock.c
+++ b/src/clock/input_clock.c
@@ -111,9 +111,6 @@ struct input_clock_t
      * It is used to detect unexpected stream discontinuities */
     clock_point_t last;
 
-    /* Maximal timestamp returned by input_clock_ConvertTS (in system unit) */
-    vlc_tick_t i_ts_max;
-
     /* Amount of extra buffering expressed in stream clock */
     vlc_tick_t i_buffering_duration;
 
@@ -164,8 +161,6 @@ input_clock_t *input_clock_New( float rate )
 
     cl->last = clock_point_Create( VLC_TICK_INVALID, VLC_TICK_INVALID );
 
-    cl->i_ts_max = VLC_TICK_INVALID;
-
     cl->i_buffering_duration = 0;
 
     cl->i_next_drift_update = VLC_TICK_INVALID;
@@ -221,7 +216,6 @@ vlc_tick_t input_clock_Update( input_clock_t *cl, vlc_object_t *p_log,
          * warning from the stream control facilities (dd-edited
          * stream ?). */
         msg_Warn( p_log, "clock gap, unexpected stream discontinuity" );
-        cl->i_ts_max = VLC_TICK_INVALID;
 
         /* */
         msg_Warn( p_log, "feeding synchro with a new reference point trying to recover from clock gap" );
@@ -236,7 +230,7 @@ vlc_tick_t input_clock_Update( input_clock_t *cl, vlc_object_t *p_log,
 
         /* Feed synchro with a new reference point. */
         cl->b_has_reference = true;
-        cl->ref = clock_point_Create( __MAX( cl->i_ts_max + CR_MEAN_PTS_GAP, i_ck_system ),
+        cl->ref = clock_point_Create( __MAX( CR_MEAN_PTS_GAP, i_ck_system ),
                                       i_ck_stream );
         cl->b_has_external_clock = false;
     }
@@ -298,7 +292,6 @@ void input_clock_Reset( input_clock_t *cl )
     cl->b_has_reference = false;
     cl->ref = clock_point_Create( VLC_TICK_INVALID, VLC_TICK_INVALID );
     cl->b_has_external_clock = false;
-    cl->i_ts_max = VLC_TICK_INVALID;
 
     vlc_mutex_unlock( &cl->lock );
 }
@@ -363,65 +356,6 @@ vlc_tick_t input_clock_GetWakeup( input_clock_t *cl )
     return i_wakeup;
 }
 
-/*****************************************************************************
- * input_clock_ConvertTS
- *****************************************************************************/
-int input_clock_ConvertTS( vlc_object_t *p_object, input_clock_t *cl,
-                           float *p_rate, vlc_tick_t *pi_ts0, vlc_tick_t *pi_ts1,
-                           vlc_tick_t i_ts_bound )
-{
-    assert( pi_ts0 );
-    vlc_mutex_lock( &cl->lock );
-
-    if( p_rate )
-        *p_rate = cl->rate;
-
-    if( !cl->b_has_reference )
-    {
-        vlc_mutex_unlock( &cl->lock );
-        msg_Err(p_object, "Timestamp conversion failed for %"PRId64": "
-                "no reference clock", *pi_ts0);
-        *pi_ts0 = VLC_TICK_INVALID;
-        if( pi_ts1 )
-            *pi_ts1 = VLC_TICK_INVALID;
-        return VLC_EGENERIC;
-    }
-
-    /* */
-    const vlc_tick_t i_ts_buffering = cl->i_buffering_duration / cl->rate;
-    const vlc_tick_t i_ts_delay = cl->i_pts_delay + ClockGetTsOffset( cl );
-
-    /* */
-    if( *pi_ts0 != VLC_TICK_INVALID )
-    {
-        *pi_ts0 = ClockStreamToSystem( cl, *pi_ts0 + AvgGet( &cl->drift ) );
-        if( *pi_ts0 > cl->i_ts_max )
-            cl->i_ts_max = *pi_ts0;
-        *pi_ts0 += i_ts_delay;
-    }
-
-    /* XXX we do not update i_ts_max on purpose */
-    if( pi_ts1 && *pi_ts1 != VLC_TICK_INVALID )
-    {
-        *pi_ts1 = ClockStreamToSystem( cl, *pi_ts1 + AvgGet( &cl->drift ) ) +
-                  i_ts_delay;
-    }
-
-    vlc_mutex_unlock( &cl->lock );
-
-    /* Check ts validity */
-    if (i_ts_bound != INT64_MAX && *pi_ts0 != VLC_TICK_INVALID) {
-        if (*pi_ts0 >= vlc_tick_now() + i_ts_delay + i_ts_buffering + i_ts_bound) {
-            msg_Err(p_object,
-                "Timestamp conversion failed (delay %"PRId64", buffering "
-                "%"PRId64", bound %"PRId64")",
-                i_ts_delay, i_ts_buffering, i_ts_bound);
-            return VLC_EGENERIC;
-        }
-    }
-
-    return VLC_SUCCESS;
-}
 /*****************************************************************************
  * input_clock_GetRate: Return current rate
  *****************************************************************************/
diff --git a/src/clock/input_clock.h b/src/clock/input_clock.h
index 1c8277a502c..a1bb2a78cfa 100644
--- a/src/clock/input_clock.h
+++ b/src/clock/input_clock.h
@@ -30,8 +30,7 @@
 /** @struct input_clock_t
  * This structure is used to manage clock drift and reception jitters
  *
- * XXX input_clock_ConvertTS can be called from any threads. All others functions
- * MUST be called from one and only one thread.
+ * All functions MUST be called from one and only one thread.
  */
 typedef struct input_clock_t input_clock_t;
 
@@ -93,23 +92,6 @@ void    input_clock_GetSystemOrigin( input_clock_t *, vlc_tick_t *pi_system, vlc
  */
 void    input_clock_ChangeSystemOrigin( input_clock_t *, bool b_absolute, vlc_tick_t i_system );
 
-/**
- * This function converts a pair of timestamp from stream clock to system clock.
- *
- * If p_rate is provided it will be filled with the rate value used for
- * the conversion.
- * p_ts0 is a pointer to a timestamp to be converted (in place) and must be non NULL.
- * p_ts1 is a pointer to a timestamp to be converted (in place) and can be NULL.
- *
- * It will return VLC_EGENERIC if i_ts_bound is not INT64_MAX and if the value *p_ts0
- * after conversion is not before the deadline vlc_tick_now() + i_pts_delay + i_ts_bound.
- * It will also return VLC_EGENERIC if the conversion cannot be done successfully. In
- * this case, *p_ts0 and *p_ts1 will hold an invalid timestamp.
- * Otherwise it will return VLC_SUCCESS.
- */
-int input_clock_ConvertTS( vlc_object_t *, input_clock_t *, float *p_rate,
-                           vlc_tick_t *pi_ts0, vlc_tick_t *pi_ts1, vlc_tick_t i_ts_bound );
-
 /**
  * This function returns the current rate.
  */
-- 
2.26.2



More information about the vlc-devel mailing list