[vlc-commits] input: use VLC_TICK_INVALID for time/length

Thomas Guillem git at videolan.org
Wed Sep 4 15:40:47 CEST 2019


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Thu Aug 29 11:31:59 2019 +0200| [d34852727700e98ef5533bfdaead574ec1700f2a] | committer: Thomas Guillem

input: use VLC_TICK_INVALID for time/length

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d34852727700e98ef5533bfdaead574ec1700f2a
---

 src/input/es_out.c | 11 +++++++----
 src/input/input.c  | 18 +++++++++---------
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/input/es_out.c b/src/input/es_out.c
index be19053e78..f663a1db4d 100644
--- a/src/input/es_out.c
+++ b/src/input/es_out.c
@@ -3290,11 +3290,14 @@ static int EsOutVaControlLocked( es_out_t *out, int i_query, va_list args )
             else
                 i_delay = 0;
 
-            i_time -= i_delay;
-            if( i_time < 0 )
-                i_time = 0;
+            if( i_time != VLC_TICK_INVALID )
+            {
+                i_time -= i_delay;
+                if( i_time < VLC_TICK_0 )
+                    i_time = VLC_TICK_0;
+            }
 
-            if( i_length > 0 )
+            if( i_length != VLC_TICK_INVALID )
                 f_position -= (double)i_delay / i_length;
             if( f_position < 0 )
                 f_position = 0;
diff --git a/src/input/input.c b/src/input/input.c
index a15ce6cab9..7ef4508d60 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -298,7 +298,7 @@ static input_thread_t *Create( vlc_object_t *p_parent,
     priv->b_thumbnailing = option == INPUT_CREATE_OPTION_THUMBNAILING;
     priv->b_can_pace_control = true;
     priv->i_start = 0;
-    priv->i_time  = 0;
+    priv->i_time = VLC_TICK_INVALID;
     priv->i_stop  = 0;
     priv->i_title_offset = input_priv(p_input)->i_seekpoint_offset = 0;
     priv->i_state = INIT_S;
@@ -527,7 +527,7 @@ static void MainLoopDemux( input_thread_t *p_input, bool *pb_changed )
     if( p_priv->i_stop > 0 )
     {
         if( demux_Control( p_demux, DEMUX_GET_TIME, &p_priv->i_time ) )
-            p_priv->i_time = 0;
+            p_priv->i_time = VLC_TICK_INVALID;
 
         if( p_priv->i_stop <= p_priv->i_time )
             i_ret = VLC_DEMUXER_EOF;
@@ -611,8 +611,8 @@ static void MainLoopStatistics( input_thread_t *p_input )
 {
     input_thread_private_t *priv = input_priv(p_input);
     double f_position = 0.0;
-    vlc_tick_t i_time = 0;
-    vlc_tick_t i_length = 0;
+    vlc_tick_t i_time;
+    vlc_tick_t i_length;
 
     /* update input status variables */
     if( demux_Control( priv->master->p_demux,
@@ -620,11 +620,11 @@ static void MainLoopStatistics( input_thread_t *p_input )
         f_position = 0.0;
 
     if( demux_Control( priv->master->p_demux, DEMUX_GET_TIME, &i_time ) )
-        i_time = 0;
+        i_time = VLC_TICK_INVALID;
     input_priv(p_input)->i_time = i_time;
 
     if( demux_Control( priv->master->p_demux, DEMUX_GET_LENGTH, &i_length ) )
-        i_length = 0;
+        i_length = VLC_TICK_INVALID;
 
     es_out_SetTimes( priv->p_es_out, f_position, i_time, i_length );
 
@@ -1269,11 +1269,11 @@ static int Init( input_thread_t * p_input )
     /* Init length */
     vlc_tick_t i_length;
     if( demux_Control( master->p_demux, DEMUX_GET_LENGTH, &i_length ) )
-        i_length = 0;
-    if( i_length <= 0 )
+        i_length = VLC_TICK_INVALID;
+    if( i_length == VLC_TICK_INVALID )
         i_length = input_item_GetDuration( priv->p_item );
 
-    input_SendEventTimes( p_input, 0.0, 0, i_length );
+    input_SendEventTimes( p_input, 0.0, VLC_TICK_INVALID, i_length );
 
     if( !priv->b_preparsing )
     {



More information about the vlc-commits mailing list