[vlc-commits] core: use vlc_tick_t for DEMUX_GET_LENGTH officially

Steve Lhomme git at videolan.org
Thu Sep 20 10:09:16 CEST 2018


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Sat May  5 16:16:51 2018 +0200| [a58b739d06acbc483e59bca11f69b15fb53b8b62] | committer: Steve Lhomme

core: use vlc_tick_t for DEMUX_GET_LENGTH officially

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

 include/vlc_demux.h                                |  2 +-
 modules/access/bluray.c                            |  3 +--
 modules/access/dcp/dcp.cpp                         |  6 +++---
 modules/access/dvdnav.c                            |  2 +-
 modules/access/dvdread.c                           |  6 ++----
 modules/access/idummy.c                            |  3 +--
 modules/access/imem.c                              |  3 +--
 modules/access/live555.cpp                         |  7 +++----
 modules/access/rdp.c                               |  3 +--
 modules/access/screen/wayland.c                    |  2 +-
 modules/access/timecode.c                          |  2 +-
 modules/access/vnc.c                               |  4 +---
 modules/demux/adaptive/PlaylistManager.cpp         |  2 +-
 modules/demux/aiff.c                               |  5 ++---
 modules/demux/asf/asf.c                            |  5 ++---
 modules/demux/avformat/demux.c                     |  7 +++----
 modules/demux/avi/avi.c                            |  5 ++---
 modules/demux/caf.c                                |  6 +++---
 modules/demux/flac.c                               | 13 ++++++-------
 modules/demux/gme.c                                |  4 +---
 modules/demux/image.c                              |  3 +--
 modules/demux/mkv/mkv.cpp                          |  7 +++----
 modules/demux/mod.c                                |  6 +++---
 modules/demux/mp4/heif.c                           |  4 ++--
 modules/demux/mp4/mp4.c                            |  9 ++++-----
 modules/demux/mpc.c                                |  8 ++++----
 modules/demux/mpeg/es.c                            |  5 ++---
 modules/demux/mpeg/ps.c                            |  9 ++++-----
 modules/demux/mpeg/ts.c                            |  7 ++-----
 modules/demux/nsv.c                                |  7 +++----
 modules/demux/nuv.c                                |  9 ++++-----
 modules/demux/ogg.c                                |  5 ++---
 modules/demux/ogg.h                                |  2 +-
 modules/demux/pva.c                                |  2 +-
 modules/demux/smf.c                                |  2 +-
 modules/demux/stl.c                                |  4 ++--
 modules/demux/subtitle.c                           |  5 ++---
 modules/demux/tta.c                                |  2 +-
 modules/demux/ttml.c                               |  5 ++---
 modules/demux/ty.c                                 |  5 ++---
 modules/demux/vobsub.c                             |  5 ++---
 modules/demux/webvtt.c                             |  4 ++--
 modules/stream_out/chromecast/chromecast_demux.cpp |  2 +-
 src/input/demux.c                                  |  5 ++---
 src/input/demux_chained.c                          |  6 +++---
 src/input/input.c                                  |  2 +-
 46 files changed, 94 insertions(+), 126 deletions(-)

diff --git a/include/vlc_demux.h b/include/vlc_demux.h
index 08e3742379..13ce0df760 100644
--- a/include/vlc_demux.h
+++ b/include/vlc_demux.h
@@ -176,7 +176,7 @@ enum demux_query_e
     DEMUX_SET_POSITION,         /* arg1= double arg2= bool b_precise    res=can fail    */
 
     /* LENGTH/TIME in microsecond, 0 if unknown */
-    DEMUX_GET_LENGTH,           /* arg1= int64_t *      res=    */
+    DEMUX_GET_LENGTH,           /* arg1= vlc_tick_t *   res=    */
     DEMUX_GET_TIME,             /* arg1= vlc_tick_t *   res=    */
     DEMUX_SET_TIME,             /* arg1= int64_t arg2= bool b_precise   res=can fail    */
 
diff --git a/modules/access/bluray.c b/modules/access/bluray.c
index 07fb464dd3..3fdebeca1c 100644
--- a/modules/access/bluray.c
+++ b/modules/access/bluray.c
@@ -1935,11 +1935,10 @@ static int blurayControl(demux_t *p_demux, int query, va_list args)
 
     case DEMUX_GET_LENGTH:
     {
-        int64_t *pi_length = va_arg(args, int64_t *);
         if(p_sys->cur_title < p_sys->i_title &&
            (CURRENT_TITLE->i_flags & INPUT_TITLE_INTERACTIVE))
                 return VLC_EGENERIC;
-        *pi_length = p_sys->cur_title < p_sys->i_title ? CUR_LENGTH : 0;
+        *va_arg(args, vlc_tick_t *) = p_sys->cur_title < p_sys->i_title ? CUR_LENGTH : 0;
         return VLC_SUCCESS;
     }
     case DEMUX_SET_TIME:
diff --git a/modules/access/dcp/dcp.cpp b/modules/access/dcp/dcp.cpp
index ddb2be8c00..110a4dda73 100644
--- a/modules/access/dcp/dcp.cpp
+++ b/modules/access/dcp/dcp.cpp
@@ -777,7 +777,7 @@ static int Control( demux_t *p_demux, int query, va_list args )
 {
     double f,*pf;
     bool *pb;
-    int64_t *pi64, i64;
+    int64_t i64;
     demux_sys_t *p_sys = (demux_sys_t *)p_demux->p_sys;
 
     switch ( query )
@@ -815,8 +815,8 @@ static int Control( demux_t *p_demux, int query, va_list args )
             break;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg ( args, int64_t * );
-            *pi64 =  ( p_sys->frames_total * p_sys->frame_rate_denom / p_sys->frame_rate_num ) * CLOCK_FREQ;
+            *va_arg ( args, vlc_tick_t * ) =
+                vlc_tick_from_sec( p_sys->frames_total * p_sys->frame_rate_denom / p_sys->frame_rate_num );
             break;
 
         case DEMUX_GET_TIME:
diff --git a/modules/access/dvdnav.c b/modules/access/dvdnav.c
index 505e92962b..7092539624 100644
--- a/modules/access/dvdnav.c
+++ b/modules/access/dvdnav.c
@@ -569,7 +569,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             case DEMUX_GET_LENGTH:
                 if( p_sys->i_pgc_length > 0 )
                 {
-                    *va_arg( args, int64_t * ) = (int64_t)p_sys->i_pgc_length;
+                    *va_arg( args, vlc_tick_t * ) = p_sys->i_pgc_length;
                     return VLC_SUCCESS;
                 }
                 break;
diff --git a/modules/access/dvdread.c b/modules/access/dvdread.c
index 74fb63682a..8d89360e59 100644
--- a/modules/access/dvdread.c
+++ b/modules/access/dvdread.c
@@ -319,7 +319,6 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     demux_sys_t *p_sys = p_demux->p_sys;
     double f, *pf;
     bool *pb;
-    int64_t *pi64;
     input_title_t ***ppp_title;
     int *pi_int;
     int i;
@@ -356,13 +355,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_EGENERIC;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->cur_title >= 0 && p_sys->cur_title < p_sys->i_titles )
             {
-                *pi64 = (int64_t)dvdtime_to_time( &p_sys->p_cur_pgc->playback_time );
+                *va_arg( args, vlc_tick_t * ) = dvdtime_to_time( &p_sys->p_cur_pgc->playback_time );
                 return VLC_SUCCESS;
             }
-            *pi64 = 0;
+            *va_arg( args, vlc_tick_t * ) = 0;
             return VLC_EGENERIC;
 
         /* Special for access_demux */
diff --git a/modules/access/idummy.c b/modules/access/idummy.c
index f4c37b73f9..f9c5248746 100644
--- a/modules/access/idummy.c
+++ b/modules/access/idummy.c
@@ -106,8 +106,7 @@ static int ControlPause( demux_t *demux, int query, va_list args )
 
         case DEMUX_GET_LENGTH:
         {
-            vlc_tick_t *plen = va_arg( args, vlc_tick_t * );
-            *plen = p_sys->length;
+            *va_arg( args, vlc_tick_t * ) = p_sys->length;
             break;
         }
 
diff --git a/modules/access/imem.c b/modules/access/imem.c
index 45b54feab1..e4b27db2f0 100644
--- a/modules/access/imem.c
+++ b/modules/access/imem.c
@@ -541,8 +541,7 @@ static int ControlDemux(demux_t *demux, int i_query, va_list args)
         return VLC_SUCCESS;
     }
     case DEMUX_GET_LENGTH: {
-        int64_t *l = va_arg(args, int64_t *);
-        *l = 0;
+        *va_arg(args, vlc_tick_t *) = 0;
         return VLC_SUCCESS;
     }
     case DEMUX_SET_NEXT_DEMUX_TIME:
diff --git a/modules/access/live555.cpp b/modules/access/live555.cpp
index 45f7a8c25e..606bdc46b2 100644
--- a/modules/access/live555.cpp
+++ b/modules/access/live555.cpp
@@ -1518,7 +1518,7 @@ static int Demux( demux_t *p_demux )
 static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = (demux_sys_t *)p_demux->p_sys;
-    int64_t *pi64, i64;
+    int64_t i64;
     double  *pf, f;
     bool *pb;
 
@@ -1535,13 +1535,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_EGENERIC;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->f_npt_length > 0 )
             {
                 if( unlikely(p_sys->f_npt_length >= (double)(INT64_MAX / CLOCK_FREQ)) )
-                    *pi64 = INT64_MAX;
+                    *va_arg( args, vlc_tick_t * ) = INT64_MAX;
                 else
-                    *pi64 = vlc_tick_from_sec(p_sys->f_npt_length);
+                    *va_arg( args, vlc_tick_t * ) = vlc_tick_from_sec(p_sys->f_npt_length);
                 return VLC_SUCCESS;
             }
             return VLC_EGENERIC;
diff --git a/modules/access/rdp.c b/modules/access/rdp.c
index afbdd80a66..d5a1049e3e 100644
--- a/modules/access/rdp.c
+++ b/modules/access/rdp.c
@@ -311,8 +311,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = 0;
+            *va_arg( args, vlc_tick_t * ) = 0;
             return VLC_SUCCESS;
 
         case DEMUX_GET_FPS:
diff --git a/modules/access/screen/wayland.c b/modules/access/screen/wayland.c
index bf81fb76a1..07dc2c264d 100644
--- a/modules/access/screen/wayland.c
+++ b/modules/access/screen/wayland.c
@@ -285,7 +285,7 @@ static int Control(demux_t *demux, int query, va_list args)
             break;
 
         case DEMUX_GET_LENGTH:
-            *va_arg(args, int64_t *) = 0;
+            *va_arg(args, vlc_tick_t *) = 0;
             break;
 
         case DEMUX_GET_TIME:
diff --git a/modules/access/timecode.c b/modules/access/timecode.c
index d82f116998..dbe6535e37 100644
--- a/modules/access/timecode.c
+++ b/modules/access/timecode.c
@@ -121,7 +121,7 @@ static int Control (demux_t *demux, int query, va_list args)
             break;
 
         case DEMUX_GET_LENGTH:
-            *va_arg (args, int64_t *) = INT64_C(0);
+            *va_arg (args, vlc_tick_t *) = INT64_C(0);
             break;
 
         case DEMUX_GET_TIME:
diff --git a/modules/access/vnc.c b/modules/access/vnc.c
index 4f7fbf857a..42dfcc2323 100644
--- a/modules/access/vnc.c
+++ b/modules/access/vnc.c
@@ -278,7 +278,6 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     bool *pb;
-    int64_t *pi64;
     double *p_dbl;
     vlc_meta_t *p_meta;
 
@@ -308,8 +307,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = 0;
+            *va_arg( args, vlc_tick_t * ) = 0;
             return VLC_SUCCESS;
 
         case DEMUX_GET_FPS:
diff --git a/modules/demux/adaptive/PlaylistManager.cpp b/modules/demux/adaptive/PlaylistManager.cpp
index 491427f17d..74ffda70c6 100644
--- a/modules/demux/adaptive/PlaylistManager.cpp
+++ b/modules/demux/adaptive/PlaylistManager.cpp
@@ -537,7 +537,7 @@ int PlaylistManager::doControl(int i_query, va_list args)
             vlc_mutex_locker locker(&cached.lock);
             if(cached.b_live)
                 return VLC_EGENERIC;
-            *(va_arg (args, int64_t *)) = cached.i_length;
+            *(va_arg (args, vlc_tick_t *)) = cached.i_length;
             break;
         }
 
diff --git a/modules/demux/aiff.c b/modules/demux/aiff.c
index b8ed3d1119..193c3434ec 100644
--- a/modules/demux/aiff.c
+++ b/modules/demux/aiff.c
@@ -268,7 +268,6 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     double f, *pf;
-    int64_t *pi64;
 
     switch( i_query )
     {
@@ -321,10 +320,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
         {
             int64_t i_end  = p_sys->i_ssnd_end > 0 ? p_sys->i_ssnd_end : stream_Size( p_demux->s );
 
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->i_ssnd_start < i_end )
             {
-                *pi64 = CLOCK_FREQ * ( i_end - p_sys->i_ssnd_start ) / p_sys->i_ssnd_fsize / p_sys->fmt.audio.i_rate;
+                *va_arg( args, vlc_tick_t * ) =
+                    CLOCK_FREQ * ( i_end - p_sys->i_ssnd_start ) / p_sys->i_ssnd_fsize / p_sys->fmt.audio.i_rate;
                 return VLC_SUCCESS;
             }
             return VLC_EGENERIC;
diff --git a/modules/demux/asf/asf.c b/modules/demux/asf/asf.c
index 0532fea76e..24bcc0339e 100644
--- a/modules/demux/asf/asf.c
+++ b/modules/demux/asf/asf.c
@@ -413,15 +413,14 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     vlc_meta_t  *p_meta;
-    int64_t     i64, *pi64;
+    int64_t     i64;
     int         i;
     double      f, *pf;
 
     switch( i_query )
     {
     case DEMUX_GET_LENGTH:
-        pi64 = va_arg( args, int64_t * );
-        *pi64 = p_sys->i_length;
+        *va_arg( args, vlc_tick_t * ) = p_sys->i_length;
         return VLC_SUCCESS;
 
     case DEMUX_GET_TIME:
diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
index b92079e720..cbedd7f109 100644
--- a/modules/demux/avformat/demux.c
+++ b/modules/demux/avformat/demux.c
@@ -1001,7 +1001,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     demux_sys_t *p_sys = p_demux->p_sys;
     const int64_t i_start_time = p_sys->ic->start_time != AV_NOPTS_VALUE ? p_sys->ic->start_time : 0;
     double f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
 
     switch( i_query )
     {
@@ -1058,11 +1058,10 @@ 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->ic->duration != (int64_t)AV_NOPTS_VALUE )
-                *pi64 = FROM_AV_TS(p_sys->ic->duration);
+                *va_arg( args, vlc_tick_t * ) = FROM_AV_TS(p_sys->ic->duration);
             else
-                *pi64 = 0;
+                *va_arg( args, vlc_tick_t * ) = 0;
             return VLC_SUCCESS;
 
         case DEMUX_GET_TIME:
diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index bf39154167..fec84cee6c 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -1590,7 +1590,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     double   f, *pf;
-    int64_t i64, *pi64;
+    vlc_tick_t i64;
     bool b;
     vlc_meta_t *p_meta;
 
@@ -1643,8 +1643,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:
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = p_sys->i_length * (vlc_tick_t)CLOCK_FREQ;
+            *va_arg( args, vlc_tick_t * ) = vlc_tick_from_sec(p_sys->i_length);
             return VLC_SUCCESS;
 
         case DEMUX_GET_FPS:
diff --git a/modules/demux/caf.c b/modules/demux/caf.c
index dda7f83142..44df146d04 100644
--- a/modules/demux/caf.c
+++ b/modules/demux/caf.c
@@ -1002,7 +1002,7 @@ static int Demux( demux_t *p_demux )
  *****************************************************************************/
 static int Control( demux_t *p_demux, int i_query, va_list args )
 {
-    int64_t i64, *pi64, i_sample;
+    int64_t i64, i_sample;
     double f, *pf;
     frame_span_t position;
 
@@ -1016,8 +1016,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = CLOCK_FREQ * ( i_num_samples / p_sys->fmt.audio.i_rate );
+            *va_arg( args, vlc_tick_t * ) =
+                CLOCK_FREQ * ( i_num_samples / p_sys->fmt.audio.i_rate );
             return VLC_SUCCESS;
 
         case DEMUX_GET_TIME:
diff --git a/modules/demux/flac.c b/modules/demux/flac.c
index 1184bd6fab..0ed521db2a 100644
--- a/modules/demux/flac.c
+++ b/modules/demux/flac.c
@@ -86,7 +86,7 @@ typedef struct
     struct flac_stream_info stream_info;
     bool b_stream_info;
 
-    int64_t i_length; /* Length from stream info */
+    vlc_tick_t i_length; /* Length from stream info */
     uint64_t i_data_pos;
 
     /* */
@@ -408,11 +408,11 @@ static int Demux( demux_t *p_demux )
 /*****************************************************************************
  * Control:
  *****************************************************************************/
-static int64_t ControlGetLength( demux_t *p_demux )
+static vlc_tick_t ControlGetLength( demux_t *p_demux )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     const uint64_t i_size = stream_Size(p_demux->s) - p_sys->i_data_pos;
-    int64_t i_length = p_sys->i_length;
+    vlc_tick_t i_length = p_sys->i_length;
     int i;
 
     /* Try to fix length using seekpoint and current size for truncated file */
@@ -521,8 +521,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     }
     else if( i_query == DEMUX_GET_LENGTH )
     {
-        int64_t *pi64 = va_arg( args, int64_t * );
-        *pi64 = ControlGetLength( p_demux );
+        *va_arg( args, vlc_tick_t * ) = ControlGetLength( p_demux );
         return VLC_SUCCESS;
     }
     else if( i_query == DEMUX_SET_TIME )
@@ -533,7 +532,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     else if( i_query == DEMUX_SET_POSITION )
     {
         const double f = va_arg( args, double );
-        int64_t i_length = ControlGetLength( p_demux );
+        vlc_tick_t i_length = ControlGetLength( p_demux );
         int i_ret;
         if( i_length > 0 )
         {
@@ -557,7 +556,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     }
     else if( i_query == DEMUX_GET_POSITION )
     {
-        const int64_t i_length = ControlGetLength(p_demux);
+        const vlc_tick_t i_length = ControlGetLength(p_demux);
         if( i_length > 0 )
         {
             vlc_tick_t current = ControlGetTime(p_demux);
diff --git a/modules/demux/gme.c b/modules/demux/gme.c
index abc432f1e2..efff60ac0c 100644
--- a/modules/demux/gme.c
+++ b/modules/demux/gme.c
@@ -280,12 +280,10 @@ static int Control (demux_t *demux, int query, va_list args)
 
         case DEMUX_GET_LENGTH:
         {
-            int64_t *v = va_arg (args, int64_t *);
-
             if (unlikely(sys->track_id >= sys->titlec)
              || (sys->titlev[sys->track_id]->i_length == 0))
                 break;
-            *v = sys->titlev[sys->track_id]->i_length;
+            *va_arg (args, vlc_tick_t *) = sys->titlev[sys->track_id]->i_length;
             return VLC_SUCCESS;
         }
 
diff --git a/modules/demux/image.c b/modules/demux/image.c
index 6949cb803f..536ce681d9 100644
--- a/modules/demux/image.c
+++ b/modules/demux/image.c
@@ -273,8 +273,7 @@ static int Control(demux_t *demux, int query, va_list args)
         return VLC_SUCCESS;
     }
     case DEMUX_GET_LENGTH: {
-        int64_t *length = va_arg(args, int64_t *);
-        *length = __MAX(sys->duration, 0);
+        *va_arg(args, vlc_tick_t *) = __MAX(sys->duration, 0);
         return VLC_SUCCESS;
     }
     case DEMUX_GET_FPS: {
diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
index c97a490fc1..f6a2112afb 100644
--- a/modules/demux/mkv/mkv.cpp
+++ b/modules/demux/mkv/mkv.cpp
@@ -284,7 +284,7 @@ static void Close( vlc_object_t *p_this )
 static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = (demux_sys_t *)p_demux->p_sys;
-    int64_t     *pi64, i64;
+    int64_t     i64;
     double      *pf, f;
     int         i_skp;
     size_t      i_idx;
@@ -330,11 +330,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->i_duration > 0 )
-                *pi64 = static_cast<int64_t>( p_sys->i_duration );
+                *va_arg( args, vlc_tick_t * ) = p_sys->i_duration;
             else
-                *pi64 = VLC_TICK_INVALID;
+                *va_arg( args, vlc_tick_t * ) = VLC_TICK_INVALID;
             return VLC_SUCCESS;
 
         case DEMUX_GET_POSITION:
diff --git a/modules/demux/mod.c b/modules/demux/mod.c
index c64cab14e4..40dbcaa00f 100644
--- a/modules/demux/mod.c
+++ b/modules/demux/mod.c
@@ -292,7 +292,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     double f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
+    vlc_tick_t *pi64;
 
     switch( i_query )
     {
@@ -329,8 +330,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
         return VLC_SUCCESS;
 
     case DEMUX_GET_LENGTH:
-        pi64 = va_arg( args, int64_t * );
-        *pi64 = p_sys->i_length;
+        *va_arg( args, vlc_tick_t * ) = p_sys->i_length;
         return VLC_SUCCESS;
 
     case DEMUX_SET_TIME:
diff --git a/modules/demux/mp4/heif.c b/modules/demux/mp4/heif.c
index c3794d043e..e2ea427608 100644
--- a/modules/demux/mp4/heif.c
+++ b/modules/demux/mp4/heif.c
@@ -177,8 +177,8 @@ static int ControlHEIF( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
         }
         case DEMUX_GET_LENGTH:
-            *(va_arg( args, int64_t * )) = p_sys->p_title->i_seekpoint *
-                                           p_sys->i_image_duration;
+            *(va_arg( args, vlc_tick_t * )) = p_sys->p_title->i_seekpoint *
+                                              p_sys->i_image_duration;
             return VLC_SUCCESS;
         case DEMUX_GET_TIME:
             *(va_arg(args, vlc_tick_t *)) = p_sys->i_pcr;
diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 109cf34dab..3b89e64faf 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -1946,7 +1946,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     demux_sys_t *p_sys = p_demux->p_sys;
 
     double f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
     bool b;
 
     const uint64_t i_duration = __MAX(p_sys->i_duration, p_sys->i_cumulated_duration);
@@ -2000,13 +2000,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
                 return Seek( p_demux, i64, b );
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->i_timescale > 0 )
             {
-                *pi64 = MP4_rescale_mtime( i_duration,
-                                           p_sys->i_timescale );
+                *va_arg( args, vlc_tick_t * ) = MP4_rescale_mtime( i_duration,
+                                                           p_sys->i_timescale );
             }
-            else *pi64 = 0;
+            else *va_arg( args, vlc_tick_t * ) = 0;
             return VLC_SUCCESS;
 
         case DEMUX_GET_FPS:
diff --git a/modules/demux/mpc.c b/modules/demux/mpc.c
index e3ea8726bb..3148710ad7 100644
--- a/modules/demux/mpc.c
+++ b/modules/demux/mpc.c
@@ -260,7 +260,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     double   f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
+    vlc_tick_t *pi64;
     bool *pb_bool;
 
     switch( i_query )
@@ -274,9 +275,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = CLOCK_FREQ * p_sys->info.pcm_samples /
-                        p_sys->info.sample_freq;
+            *va_arg( args, vlc_tick_t * ) =
+                CLOCK_FREQ * p_sys->info.pcm_samples / p_sys->info.sample_freq;
             return VLC_SUCCESS;
 
         case DEMUX_GET_POSITION:
diff --git a/modules/demux/mpeg/es.c b/modules/demux/mpeg/es.c
index 02a284f469..e82a716cbb 100644
--- a/modules/demux/mpeg/es.c
+++ b/modules/demux/mpeg/es.c
@@ -389,7 +389,6 @@ static void Close( vlc_object_t * p_this )
 static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys  = p_demux->p_sys;
-    int64_t *pi64;
     bool *pb_bool;
 
     switch( i_query )
@@ -427,8 +426,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
                     return VLC_EGENERIC;
                 }
 
-                pi64 = va_arg( args, int64_t * );
-                *pi64 = (p_sys->i_pts + p_sys->i_time_offset) / f_pos;
+                *va_arg( args, vlc_tick_t * ) =
+                    (p_sys->i_pts + p_sys->i_time_offset) / f_pos;
                 return VLC_SUCCESS;
             }
             return i_ret;
diff --git a/modules/demux/mpeg/ps.c b/modules/demux/mpeg/ps.c
index e5b998a911..d3045423f3 100644
--- a/modules/demux/mpeg/ps.c
+++ b/modules/demux/mpeg/ps.c
@@ -673,7 +673,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     double f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
     int i_ret;
 
     switch( i_query )
@@ -749,19 +749,18 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             break;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->i_length > VLC_TICK_0 )
             {
-                *pi64 = p_sys->i_length;
+                *va_arg( args, vlc_tick_t * ) = p_sys->i_length;
                 return VLC_SUCCESS;
             }
             else if( p_sys->i_mux_rate > 0 )
             {
-                *pi64 = CLOCK_FREQ * ( stream_Size( p_demux->s ) - p_sys->i_start_byte / 50 ) /
+                *va_arg( args, vlc_tick_t * ) = CLOCK_FREQ * ( stream_Size( p_demux->s ) - p_sys->i_start_byte / 50 ) /
                     p_sys->i_mux_rate;
                 return VLC_SUCCESS;
             }
-            *pi64 = 0;
+            *va_arg( args, vlc_tick_t * ) = 0;
             break;
 
         case DEMUX_SET_TIME:
diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c
index 54f9a594b4..fa733292da 100644
--- a/modules/demux/mpeg/ts.c
+++ b/modules/demux/mpeg/ts.c
@@ -885,7 +885,6 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     double f, *pf;
     bool b_bool, *pb_bool;
     int64_t i64;
-    int64_t *pi64;
     int i_int;
     const ts_pmt_t *p_pmt = NULL;
     const ts_pat_t *p_pat = GetPID(p_sys, 0)->u.p_pat;
@@ -1030,14 +1029,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
         break;
 
     case DEMUX_GET_LENGTH:
-        pi64 = va_arg( args, int64_t * );
-
         if( p_sys->b_access_control )
         {
             time_t i_event_duration;
             if( !EITCurrentEventTime( p_pmt, p_sys, NULL, &i_event_duration ) )
             {
-                *pi64 = vlc_tick_from_sec( i_event_duration );
+                *va_arg( args, vlc_tick_t * ) = vlc_tick_from_sec( i_event_duration );
                 return VLC_SUCCESS;
             }
         }
@@ -1051,7 +1048,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
                               p_pmt->pcr.i_first_dts;
             stime_t i_last = TimeStampWrapAround( p_pmt->pcr.i_first, p_pmt->i_last_dts );
             i_last += p_pmt->pcr.i_pcroffset;
-            *pi64 = FROM_SCALE(i_last - i_start);
+            *va_arg( args, vlc_tick_t * ) = FROM_SCALE(i_last - i_start);
             return VLC_SUCCESS;
         }
         break;
diff --git a/modules/demux/nsv.c b/modules/demux/nsv.c
index 0bb88d6837..e08f82256d 100644
--- a/modules/demux/nsv.c
+++ b/modules/demux/nsv.c
@@ -348,7 +348,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     demux_sys_t *p_sys = p_demux->p_sys;
     double f, *pf;
     bool b_bool, *pb_bool;
-    int64_t i64, *pi64;
+    int64_t i64;
 
     switch( i_query )
     {
@@ -390,13 +390,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 
 #if 0
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->i_mux_rate > 0 )
             {
-                *pi64 = CLOCK_FREQ * ( stream_Size( p_demux->s ) / 50 ) / p_sys->i_mux_rate;
+                *va_arg( args, vlc_tick_t * ) = CLOCK_FREQ * ( stream_Size( p_demux->s ) / 50 ) / p_sys->i_mux_rate;
                 return VLC_SUCCESS;
             }
-            *pi64 = 0;
+            *va_arg( args, vlc_tick_t * ) = 0;
             return VLC_EGENERIC;
 
 #endif
diff --git a/modules/demux/nuv.c b/modules/demux/nuv.c
index 47956bdf91..4e76c229ee 100644
--- a/modules/demux/nuv.c
+++ b/modules/demux/nuv.c
@@ -449,7 +449,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
     demux_sys_t *p_sys  = p_demux->p_sys;
 
     double   f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
 
     switch( i_query )
     {
@@ -521,19 +521,18 @@ 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_total_length >= 0 )
             {
-                *pi64 = p_sys->i_total_length;
+                *va_arg( args, vlc_tick_t * ) = p_sys->i_total_length;
                 return VLC_SUCCESS;
             }
             else if( vlc_stream_Tell( p_demux->s ) > p_sys->i_first_frame_offset )
             {
                 /* This should give an approximation of the total duration */
                 if (p_sys->i_pcr <= 0)
-                    *pi64 = 0;
+                    *va_arg( args, vlc_tick_t * ) = 0;
                 else
-                    *pi64 = p_sys->i_pcr *
+                    *va_arg( args, vlc_tick_t * ) = p_sys->i_pcr *
                             (double)( stream_Size( p_demux->s ) - p_sys->i_first_frame_offset ) /
                             (double)( vlc_stream_Tell( p_demux->s ) - p_sys->i_first_frame_offset );
 
diff --git a/modules/demux/ogg.c b/modules/demux/ogg.c
index 01a80fd9d1..62db4aaa4c 100644
--- a/modules/demux/ogg.c
+++ b/modules/demux/ogg.c
@@ -671,7 +671,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys  = p_demux->p_sys;
     vlc_meta_t *p_meta;
-    int64_t *pi64, i64;
+    int64_t i64;
     double *pf, f;
     bool *pb_bool, b, acc;
 
@@ -801,8 +801,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             if ( p_sys->i_length < 0 )
                 return demux_vaControlHelper( p_demux->s, 0, -1, p_sys->i_bitrate,
                                               1, i_query, args );
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = p_sys->i_length * 1000000;
+            *va_arg( args, vlc_tick_t * ) = vlc_tick_from_sec(p_sys->i_length);
             return VLC_SUCCESS;
 
         case DEMUX_GET_TITLE_INFO:
diff --git a/modules/demux/ogg.h b/modules/demux/ogg.h
index b9c95c3afe..e8010cc51d 100644
--- a/modules/demux/ogg.h
+++ b/modules/demux/ogg.h
@@ -218,7 +218,7 @@ typedef struct
     bool b_preparsing_done;
     bool b_es_created;
 
-    /* Length, if available. */
+    /* Length in second, if available. */
     int64_t i_length;
 
     bool b_slave;
diff --git a/modules/demux/pva.c b/modules/demux/pva.c
index aabcd7ae34..56be650d58 100644
--- a/modules/demux/pva.c
+++ b/modules/demux/pva.c
@@ -332,7 +332,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 
 #if 0
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
+            pi64 = va_arg( args, vlc_tick_t * );
             if( p_sys->i_mux_rate > 0 )
             {
                 *pi64 = CLOCK_FREQ * ( stream_Size( p_demux->s ) / 50 ) / p_sys->i_mux_rate;
diff --git a/modules/demux/smf.c b/modules/demux/smf.c
index b6e70d60c4..d60f2f0ec4 100644
--- a/modules/demux/smf.c
+++ b/modules/demux/smf.c
@@ -517,7 +517,7 @@ static int Control (demux_t *demux, int i_query, va_list args)
         case DEMUX_SET_POSITION:
             return Seek (demux, va_arg (args, double) * sys->duration);
         case DEMUX_GET_LENGTH:
-            *va_arg (args, int64_t *) = sys->duration;
+            *va_arg (args, vlc_tick_t *) = sys->duration;
             break;
         case DEMUX_GET_TIME:
             *va_arg (args, vlc_tick_t *) = sys->tick - VLC_TICK_0;
diff --git a/modules/demux/stl.c b/modules/demux/stl.c
index 406be31e2d..cf5210234e 100644
--- a/modules/demux/stl.c
+++ b/modules/demux/stl.c
@@ -102,8 +102,8 @@ static int Control(demux_t *demux, int query, va_list args)
     case DEMUX_CAN_SEEK:
         return vlc_stream_vaControl(demux->s, query, args);
     case DEMUX_GET_LENGTH: {
-        int64_t *l = va_arg(args, int64_t *);
-        *l = sys->count > 0 ? sys->index[sys->count-1].stop : 0;
+        *va_arg(args, vlc_tick_t *) =
+            sys->count > 0 ? sys->index[sys->count-1].stop : 0;
         return VLC_SUCCESS;
     }
     case DEMUX_GET_TIME: {
diff --git a/modules/demux/subtitle.c b/modules/demux/subtitle.c
index c97403c2bb..2e6d767b73 100644
--- a/modules/demux/subtitle.c
+++ b/modules/demux/subtitle.c
@@ -752,7 +752,7 @@ static void Close( vlc_object_t *p_this )
 static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
-    int64_t *pi64, i64;
+    int64_t i64;
     double *pf, f;
 
     switch( i_query )
@@ -762,8 +762,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = p_sys->i_length;
+            *va_arg( args, vlc_tick_t * ) = p_sys->i_length;
             return VLC_SUCCESS;
 
         case DEMUX_GET_TIME:
diff --git a/modules/demux/tta.c b/modules/demux/tta.c
index 1aec0921db..70d5d7f12a 100644
--- a/modules/demux/tta.c
+++ b/modules/demux/tta.c
@@ -226,7 +226,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     double   f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
 
     switch( i_query )
     {
diff --git a/modules/demux/ttml.c b/modules/demux/ttml.c
index 9aa69bef44..4fd7d92c91 100644
--- a/modules/demux/ttml.c
+++ b/modules/demux/ttml.c
@@ -207,7 +207,7 @@ static void tt_node_ToText( struct vlc_memstream *p_stream, const tt_basenode_t
 static int Control( demux_t* p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
-    int64_t *pi64, i64;
+    int64_t i64;
     double *pf, f;
     bool b;
 
@@ -236,12 +236,11 @@ static int Control( demux_t* p_demux, int i_query, va_list args )
             p_sys->b_slave = true;
             return VLC_SUCCESS;
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
             if( p_sys->times.i_count )
             {
                 tt_time_t t = tt_time_Sub( p_sys->times.p_array[p_sys->times.i_count - 1],
                                            p_sys->temporal_extent.begin );
-                *pi64 = tt_time_Convert( &t );
+                *va_arg( args, vlc_tick_t * ) = tt_time_Convert( &t );
                 return VLC_SUCCESS;
             }
             break;
diff --git a/modules/demux/ty.c b/modules/demux/ty.c
index 75c3417b08..fb83ef451e 100644
--- a/modules/demux/ty.c
+++ b/modules/demux/ty.c
@@ -491,7 +491,7 @@ static int Control(demux_t *p_demux, int i_query, va_list args)
 {
     demux_sys_t *p_sys = p_demux->p_sys;
     double f, *pf;
-    int64_t i64, *p_i64;
+    int64_t i64;
 
     /*msg_Info(p_demux, "control cmd %d", i_query);*/
     switch( i_query )
@@ -526,8 +526,7 @@ static int Control(demux_t *p_demux, int i_query, va_list args)
         return VLC_SUCCESS;
     case DEMUX_GET_LENGTH:    /* length of program in microseconds, 0 if unk */
         /* size / bitrate */
-        p_i64 = va_arg(args, int64_t *);
-        *p_i64 = 0;
+        *va_arg(args, vlc_tick_t *) = 0;
         return VLC_SUCCESS;
     case DEMUX_SET_TIME:      /* arg is time in microsecs */
         i64 = va_arg( args, int64_t );
diff --git a/modules/demux/vobsub.c b/modules/demux/vobsub.c
index cedb81dd9c..b1f939216e 100644
--- a/modules/demux/vobsub.c
+++ b/modules/demux/vobsub.c
@@ -238,7 +238,7 @@ static void Close( vlc_object_t *p_this )
 static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
-    int64_t *pi64, i64;
+    int64_t i64;
     int i;
     double *pf, f;
 
@@ -249,8 +249,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            pi64 = va_arg( args, int64_t * );
-            *pi64 = (int64_t) p_sys->i_length;
+            *va_arg( args, vlc_tick_t * ) = p_sys->i_length;
             return VLC_SUCCESS;
 
         case DEMUX_GET_TIME:
diff --git a/modules/demux/webvtt.c b/modules/demux/webvtt.c
index d446ef12cc..06f29c6dc2 100644
--- a/modules/demux/webvtt.c
+++ b/modules/demux/webvtt.c
@@ -421,7 +421,7 @@ static void MakeExtradata( demux_sys_t *p_sys, void **p_extra, size_t *pi_extra
 static int Control( demux_t *p_demux, int i_query, va_list args )
 {
     demux_sys_t *p_sys = p_demux->p_sys;
-    int64_t *pi64, i64;
+    int64_t i64;
     double *pf, f;
 
     switch( i_query )
@@ -431,7 +431,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
             return VLC_SUCCESS;
 
         case DEMUX_GET_LENGTH:
-            *(va_arg( args, int64_t * )) = p_sys->i_length;
+            *(va_arg( args, vlc_tick_t * )) = p_sys->i_length;
             return VLC_SUCCESS;
 
         case DEMUX_GET_TIME:
diff --git a/modules/stream_out/chromecast/chromecast_demux.cpp b/modules/stream_out/chromecast/chromecast_demux.cpp
index b4b5e8c4a6..b82fd74d92 100644
--- a/modules/stream_out/chromecast/chromecast_demux.cpp
+++ b/modules/stream_out/chromecast/chromecast_demux.cpp
@@ -333,7 +333,7 @@ struct demux_cc
             va_copy( ap, args );
             ret = demux_vaControl( p_demux_filter->p_next, i_query, args );
             if( ret == VLC_SUCCESS )
-                m_length = *va_arg( ap, int64_t * );
+                m_length = *va_arg( ap, vlc_tick_t * );
             va_end( ap );
             return ret;
         }
diff --git a/src/input/demux.c b/src/input/demux.c
index e3cb7c6e99..b715e28a1e 100644
--- a/src/input/demux.c
+++ b/src/input/demux.c
@@ -275,7 +275,7 @@ int demux_vaControlHelper( stream_t *s,
 {
     int64_t i_tell;
     double  f, *pf;
-    int64_t i64, *pi64;
+    int64_t i64;
 
     if( i_end < 0 )    i_end   = stream_Size( s );
     if( i_start < 0 )  i_start = 0;
@@ -310,10 +310,9 @@ int demux_vaControlHelper( stream_t *s,
             return vlc_stream_vaControl( s, i_query, args );
 
         case DEMUX_GET_LENGTH:
-            pi64 = (int64_t*)va_arg( args, int64_t * );
             if( i_bitrate > 0 && i_end > i_start )
             {
-                *pi64 = INT64_C(8000000) * (i_end - i_start) / i_bitrate;
+                *va_arg( args, vlc_tick_t * ) = INT64_C(8000000) * (i_end - i_start) / i_bitrate;
                 return VLC_SUCCESS;
             }
             return VLC_EGENERIC;
diff --git a/src/input/demux_chained.c b/src/input/demux_chained.c
index 5fe1d56afa..30fb6fd935 100644
--- a/src/input/demux_chained.c
+++ b/src/input/demux_chained.c
@@ -42,7 +42,7 @@ struct vlc_demux_chained_t
     struct
     {
         double  position;
-        int64_t length;
+        vlc_tick_t length;
         vlc_tick_t time;
     } stats;
 
@@ -72,7 +72,7 @@ static void *vlc_demux_chained_Thread(void *data)
         if (demux_TestAndClearFlags(demux, UINT_MAX) || vlc_tick_now() >= next_update)
         {
             double newpos;
-            int64_t newlen;
+            vlc_tick_t newlen;
             vlc_tick_t newtime;
 
             if (demux_Control(demux, DEMUX_GET_POSITION, &newpos))
@@ -146,7 +146,7 @@ int vlc_demux_chained_ControlVa(vlc_demux_chained_t *dc, int query, va_list ap)
             break;
         case DEMUX_GET_LENGTH:
             vlc_mutex_lock(&dc->lock);
-            *va_arg(ap, int64_t *) = dc->stats.length;
+            *va_arg(ap, vlc_tick_t *) = dc->stats.length;
             vlc_mutex_unlock(&dc->lock);
             break;
         case DEMUX_GET_TIME:
diff --git a/src/input/input.c b/src/input/input.c
index 94a73bad7d..48eaf3e1d5 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -1908,7 +1908,7 @@ static bool Control( input_thread_t *p_input,
                                    param.time.b_absolute );
             if( i_ret )
             {
-                int64_t i_length;
+                vlc_tick_t i_length;
 
                 /* Emulate it with a SET_POS */
                 if( !demux_Control( priv->master->p_demux,




More information about the vlc-commits mailing list