[vlc-commits] demux:avi: store the file length in vlc_tick_t

Steve Lhomme git at videolan.org
Thu Sep 20 16:15:59 CEST 2018


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Wed Jun  6 15:41:16 2018 +0200| [d1d99407037917de093009ca214841551b0dc3a2] | committer: Steve Lhomme

demux:avi: store the file length in vlc_tick_t

AVI_MovieGetLength() was returning vlc_tick_t in seconds !

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

 modules/demux/avi/avi.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 22b9c0a842..dbd569f73b 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -684,7 +684,7 @@ aviindex:
         AVI_IndexLoad( p_demux );
     }
 
-    /* *** movie length in sec *** */
+    /* *** movie length in vlc_tick_t *** */
     p_sys->i_length = AVI_MovieGetLength( p_demux );
 
     /* Check the index completeness */
@@ -697,8 +697,7 @@ aviindex:
     }
     if( i_idx_totalframes != p_avih->i_totalframes &&
         p_sys->i_length < VLC_TICK_FROM_US( p_avih->i_totalframes *
-                                            p_avih->i_microsecperframe ) /
-                          CLOCK_FREQ )
+                                            p_avih->i_microsecperframe ) )
     {
         msg_Warn( p_demux, "broken or missing index, 'seek' will be "
                            "approximative or will exhibit strange behavior" );
@@ -945,12 +944,10 @@ static int Demux_Seekable( demux_t *p_demux )
 
     if( i_track_count <= 0 )
     {
-        int64_t i_length = vlc_tick_from_sec( p_sys->i_length );
-
         p_sys->i_time += p_sys->i_read_increment;
         if( p_sys->i_length != 0 )
         {
-            if( p_sys->i_time >= i_length )
+            if( p_sys->i_time >= p_sys->i_length )
                 return VLC_DEMUXER_EOF;
             return VLC_DEMUXER_SUCCESS;
         }
@@ -1576,7 +1573,7 @@ static double ControlGetPosition( demux_t *p_demux )
 
     if( p_sys->i_length != 0 )
     {
-        return (double)p_sys->i_time / (double)( p_sys->i_length * (vlc_tick_t)CLOCK_FREQ );
+        return (double)p_sys->i_time / (double)p_sys->i_length;
     }
     else if( stream_Size( p_demux->s ) > 0 )
     {
@@ -1613,7 +1610,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             }
             else
             {
-                i64 = vlc_tick_from_sec( f * p_sys->i_length );
+                i64 = f * p_sys->i_length;
                 return Seek( p_demux, i64, f, b );
             }
 
@@ -1633,7 +1630,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             }
             else if( p_sys->i_length != 0 )
             {
-                f = (double)i64 / (p_sys->i_length*CLOCK_FREQ);
+                f = (double)i64 / p_sys->i_length;
             }
             else if( p_sys->i_time > 0 )
             {
@@ -1643,7 +1640,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return Seek( p_demux, i64, f, b );
         }
         case DEMUX_GET_LENGTH:
-            *va_arg( args, vlc_tick_t * ) = vlc_tick_from_sec(p_sys->i_length);
+            *va_arg( args, vlc_tick_t * ) = p_sys->i_length;
             return VLC_SUCCESS;
 
         case DEMUX_GET_FPS:
@@ -2976,7 +2973,7 @@ static int AVI_TrackStopFinishedStreams( demux_t *p_demux )
 }
 
 /****************************************************************************
- * AVI_MovieGetLength give max streams length in second
+ * AVI_MovieGetLength give max streams length in ticks
  ****************************************************************************/
 static vlc_tick_t  AVI_MovieGetLength( demux_t *p_demux )
 {
@@ -3005,7 +3002,6 @@ static vlc_tick_t  AVI_MovieGetLength( demux_t *p_demux )
         {
             i_length = AVI_GetDPTS( tk, tk->idx.i_size );
         }
-        i_length /= CLOCK_FREQ;    /* in seconds */
 
         msg_Dbg( p_demux,
                  "stream[%d] length:%"PRId64" (based on index)",



More information about the vlc-commits mailing list