[vlc-commits] demux:ps: init the length to VLC_TICK_INVALID

Steve Lhomme git at videolan.org
Tue Sep 18 09:43:51 CEST 2018


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Fri Jun  1 11:44:06 2018 +0200| [0e77382d2b5917db8e98707529b8f6bea08fe9ff] | committer: Steve Lhomme

demux:ps: init the length to VLC_TICK_INVALID

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

 modules/demux/mpeg/ps.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/modules/demux/mpeg/ps.c b/modules/demux/mpeg/ps.c
index dccfaab96e..8694d12eee 100644
--- a/modules/demux/mpeg/ps.c
+++ b/modules/demux/mpeg/ps.c
@@ -92,7 +92,7 @@ typedef struct
     vlc_tick_t  i_scr; /* committed, current position */
     int64_t     i_scr_track_id;
     int         i_mux_rate;
-    int64_t     i_length;
+    vlc_tick_t  i_length;
     int         i_time_track_index;
     int64_t     i_current_pts;
     uint64_t    i_start_byte;
@@ -137,7 +137,7 @@ static int OpenCommon( vlc_object_t *p_this, bool b_force )
     unsigned i_max_packets = PS_PACKET_PROBE;
     int format = MPEG_PS;
     int i_mux_rate = 0;
-    int i_length = -1;
+    vlc_tick_t i_length = VLC_TICK_INVALID;
 
     i_peek = vlc_stream_Peek( p_demux->s, &p_peek, 16 );
     if( i_peek < 16 )
@@ -343,9 +343,9 @@ static bool FindLength( demux_t *p_demux )
     if( !var_CreateGetBool( p_demux, "ps-trust-timestamps" ) )
         return true;
 
-    if( p_sys->i_length == -1 ) /* First time */
+    if( p_sys->i_length == VLC_TICK_INVALID ) /* First time */
     {
-        p_sys->i_length = 0;
+        p_sys->i_length = VLC_TICK_0;
         /* Check beginning */
         int i = 0;
         i_current_pos = vlc_stream_Tell( p_demux->s );
@@ -436,7 +436,7 @@ static int Demux( demux_t *p_demux )
     if( p_sys->b_lost_sync ) msg_Warn( p_demux, "found sync code" );
     p_sys->b_lost_sync = false;
 
-    if( p_sys->i_length < 0 && p_sys->b_seekable )
+    if( p_sys->i_length == VLC_TICK_INVALID && p_sys->b_seekable )
     {
         if( !FindLength( p_demux ) )
             return VLC_DEMUXER_EGENERIC;
@@ -751,7 +751,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 
         case DEMUX_GET_LENGTH:
             pi64 = va_arg( args, int64_t * );
-            if( p_sys->i_length > 0 )
+            if( p_sys->i_length > VLC_TICK_0 )
             {
                 *pi64 = p_sys->i_length;
                 return VLC_SUCCESS;
@@ -767,7 +767,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 
         case DEMUX_SET_TIME:
             i64 = va_arg( args, int64_t );
-            if( p_sys->i_time_track_index >= 0 && p_sys->i_current_pts > 0 && p_sys->i_length )
+            if( p_sys->i_time_track_index >= 0 && p_sys->i_current_pts > 0 &&
+                p_sys->i_length > VLC_TICK_0)
             {
                 i64 -= p_sys->tk[p_sys->i_time_track_index].i_first_pts;
                 return demux_Control( p_demux, DEMUX_SET_POSITION, (double) i64 / p_sys->i_length );



More information about the vlc-commits mailing list