[vlc-commits] [Git][videolan/vlc][master] 6 commits: input: use double for the position

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Sat Aug 6 14:54:28 UTC 2022



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
a680a82b by Thomas Guillem at 2022-08-06T14:39:45+00:00
input: use double for the position

input_SendEventTimes() used by the es_out was already using double.

- - - - -
c0de748a by Thomas Guillem at 2022-08-06T14:39:45+00:00
player: use double for the position

- - - - -
92450571 by Thomas Guillem at 2022-08-06T14:39:45+00:00
media_library: use double for the position

- - - - -
8c4cee02 by Thomas Guillem at 2022-08-06T14:39:45+00:00
thumbnailer: use double for the position

- - - - -
d5e785b0 by Thomas Guillem at 2022-08-06T14:39:45+00:00
lib/media: use double for the position

- - - - -
da687b72 by Thomas Guillem at 2022-08-06T14:39:45+00:00
lib/media_player: use double for the position

- - - - -


24 changed files:

- include/vlc/libvlc_events.h
- include/vlc/libvlc_media.h
- include/vlc/libvlc_media_player.h
- include/vlc_media_library.h
- include/vlc_player.h
- include/vlc_thumbnailer.h
- lib/media.c
- lib/media_player.c
- modules/control/cli/player.c
- modules/gui/macosx/playlist/VLCPlayerController.m
- modules/gui/qt/medialibrary/mlplaylistmedia.cpp
- modules/gui/qt/medialibrary/mlplaylistmedia.hpp
- modules/gui/qt/player/player_controller.cpp
- modules/gui/qt/player/player_controller_p.hpp
- modules/gui/skins2/src/vlcproc.cpp
- src/input/input.c
- src/input/input_internal.h
- src/input/thumbnailer.c
- src/player/input.c
- src/player/osd.c
- src/player/player.c
- src/player/player.h
- src/player/timer.c
- test/src/player/player.c


Changes:

=====================================
include/vlc/libvlc_events.h
=====================================
@@ -285,7 +285,7 @@ typedef struct libvlc_event_t
         } media_player_chapter_changed;
         struct
         {
-            float new_position;
+            double new_position;
         } media_player_position_changed;
         struct
         {


=====================================
include/vlc/libvlc_media.h
=====================================
@@ -767,7 +767,7 @@ libvlc_media_thumbnail_request_by_time( libvlc_instance_t *inst,
  */
 LIBVLC_API libvlc_media_thumbnail_request_t*
 libvlc_media_thumbnail_request_by_pos( libvlc_instance_t *inst,
-                                       libvlc_media_t *md, float pos,
+                                       libvlc_media_t *md, double pos,
                                        libvlc_thumbnailer_seek_speed_t speed,
                                        unsigned int width, unsigned int height,
                                        bool crop, libvlc_picture_type_t picture_type,


=====================================
include/vlc/libvlc_media_player.h
=====================================
@@ -1158,7 +1158,7 @@ LIBVLC_API int libvlc_media_player_set_time( libvlc_media_player_t *p_mi,
  * \param p_mi the Media Player
  * \return movie position, or -1. in case of error
  */
-LIBVLC_API float libvlc_media_player_get_position( libvlc_media_player_t *p_mi );
+LIBVLC_API double libvlc_media_player_get_position( libvlc_media_player_t *p_mi );
 
 /**
  * Set movie position as percentage between 0.0 and 1.0.


=====================================
include/vlc_media_library.h
=====================================
@@ -202,7 +202,7 @@ typedef struct vlc_ml_media_t
     /* Duration in milliseconds */
     int64_t i_duration;
     uint32_t i_playcount;
-    float f_progress;
+    double f_progress;
     time_t i_last_played_date;
     char* psz_title;
     char* psz_filename;
@@ -1064,7 +1064,7 @@ static inline int vlc_ml_media_generate_thumbnail( vlc_medialibrary_t* p_ml, int
                                                    vlc_ml_thumbnail_size_t size_type,
                                                    uint32_t i_desired_width,
                                                    uint32_t i_desired_height,
-                                                   float position )
+                                                   double position )
 {
     return vlc_ml_control( p_ml, VLC_ML_MEDIA_GENERATE_THUMBNAIL, i_media_id,
                            size_type, i_desired_width, i_desired_height, position );


=====================================
include/vlc_player.h
=====================================
@@ -676,7 +676,7 @@ vlc_player_GetTime(vlc_player_t *player);
  * @return a valid position in the range [0.f;1.f] or -1.f (if no media is
  * set,if playback is not yet started or in case of error)
  */
-VLC_API float
+VLC_API double
 vlc_player_GetPosition(vlc_player_t *player);
 
 /**
@@ -691,7 +691,7 @@ vlc_player_GetPosition(vlc_player_t *player);
  * @param whence absolute or relative
  */
 VLC_API void
-vlc_player_SeekByPos(vlc_player_t *player, float position,
+vlc_player_SeekByPos(vlc_player_t *player, double position,
                      enum vlc_player_seek_speed speed,
                      enum vlc_player_whence whence);
 
@@ -717,7 +717,7 @@ vlc_player_SeekByTime(vlc_player_t *player, vlc_tick_t time,
  * Helper to set the absolute position precisely
  */
 static inline void
-vlc_player_SetPosition(vlc_player_t *player, float position)
+vlc_player_SetPosition(vlc_player_t *player, double position)
 {
     vlc_player_SeekByPos(player, position, VLC_PLAYER_SEEK_PRECISE,
                          VLC_PLAYER_WHENCE_ABSOLUTE);
@@ -727,7 +727,7 @@ vlc_player_SetPosition(vlc_player_t *player, float position)
  * Helper to set the absolute position fast
  */
 static inline void
-vlc_player_SetPositionFast(vlc_player_t *player, float position)
+vlc_player_SetPositionFast(vlc_player_t *player, double position)
 {
     vlc_player_SeekByPos(player, position, VLC_PLAYER_SEEK_FAST,
                          VLC_PLAYER_WHENCE_ABSOLUTE);
@@ -737,7 +737,7 @@ vlc_player_SetPositionFast(vlc_player_t *player, float position)
  * Helper to jump the position precisely
  */
 static inline void
-vlc_player_JumpPos(vlc_player_t *player, float jumppos)
+vlc_player_JumpPos(vlc_player_t *player, double jumppos)
 {
     /* No fask seek for jumps. Indeed, jumps can seek to the current position
      * if not precise enough or if the jump value is too small. */
@@ -2835,7 +2835,7 @@ struct vlc_player_cbs
      * @param data opaque pointer set by vlc_player_AddListener()
      */
     void (*on_position_changed)(vlc_player_t *player,
-        vlc_tick_t new_time, float new_pos, void *data);
+        vlc_tick_t new_time, double new_pos, void *data);
 
     /**
      * Called when the media length has changed
@@ -3107,7 +3107,7 @@ struct vlc_player_cbs
      * @param data opaque pointer set by vlc_player_AddListener()
      */
     void (*on_atobloop_changed)(vlc_player_t *player,
-        enum vlc_player_abloop new_state, vlc_tick_t time, float pos,
+        enum vlc_player_abloop new_state, vlc_tick_t time, double pos,
         void *data);
 
     /**
@@ -3256,7 +3256,7 @@ typedef struct vlc_player_timer_id vlc_player_timer_id;
 struct vlc_player_timer_point
 {
     /** Position in the range [0.0f;1.0] */
-    float position;
+    double position;
     /** Rate of the player */
     double rate;
     /** Valid time >= VLC_TICK_0 or VLC_TICK_INVALID, subtract this time with
@@ -3411,7 +3411,7 @@ vlc_player_RemoveTimer(vlc_player_t *player, vlc_player_timer_id *timer);
 VLC_API int
 vlc_player_timer_point_Interpolate(const struct vlc_player_timer_point *point,
                                    vlc_tick_t system_now,
-                                   vlc_tick_t *out_ts, float *out_pos);
+                                   vlc_tick_t *out_ts, double *out_pos);
 
 /**
  * Get the date of the next interval


=====================================
include/vlc_thumbnailer.h
=====================================
@@ -107,7 +107,7 @@ vlc_thumbnailer_RequestByTime( vlc_thumbnailer_t *thumbnailer,
  */
 VLC_API vlc_thumbnailer_request_t*
 vlc_thumbnailer_RequestByPos( vlc_thumbnailer_t *thumbnailer,
-                              float pos,
+                              double pos,
                               enum vlc_thumbnailer_seek_speed speed,
                               input_item_t *input_item, vlc_tick_t timeout,
                               vlc_thumbnailer_cb cb, void* user_data );


=====================================
lib/media.c
=====================================
@@ -1032,7 +1032,7 @@ libvlc_media_thumbnail_request_by_time( libvlc_instance_t *inst,
 // Start an asynchronous thumbnail generation
 libvlc_media_thumbnail_request_t*
 libvlc_media_thumbnail_request_by_pos( libvlc_instance_t *inst,
-                                       libvlc_media_t *md, float pos,
+                                       libvlc_media_t *md, double pos,
                                        libvlc_thumbnailer_seek_speed_t speed,
                                        unsigned int width, unsigned int height,
                                        bool crop, libvlc_picture_type_t picture_type,


=====================================
lib/media_player.c
=====================================
@@ -175,7 +175,7 @@ on_capabilities_changed(vlc_player_t *player, int old_caps, int new_caps, void *
 }
 
 static void
-on_position_changed(vlc_player_t *player, vlc_tick_t new_time, float new_pos,
+on_position_changed(vlc_player_t *player, vlc_tick_t new_time, double new_pos,
                     void *data)
 {
     (void) player;
@@ -1310,12 +1310,12 @@ int libvlc_media_player_set_position( libvlc_media_player_t *p_mi,
     return 0;
 }
 
-float libvlc_media_player_get_position( libvlc_media_player_t *p_mi )
+double libvlc_media_player_get_position( libvlc_media_player_t *p_mi )
 {
     vlc_player_t *player = p_mi->player;
     vlc_player_Lock(player);
 
-    float f_position = vlc_player_GetPosition(player);
+    double f_position = vlc_player_GetPosition(player);
 
     vlc_player_Unlock(player);
     return f_position;


=====================================
modules/control/cli/player.c
=====================================
@@ -111,7 +111,7 @@ player_on_rate_changed(vlc_player_t *player, float new_rate, void *data)
 
 static void
 player_on_position_changed(vlc_player_t *player,
-                           vlc_tick_t new_time, float new_pos, void *data)
+                           vlc_tick_t new_time, double new_pos, void *data)
 { VLC_UNUSED(player); VLC_UNUSED(new_pos);
     struct player_cli *pc = data;
 


=====================================
modules/gui/macosx/playlist/VLCPlayerController.m
=====================================
@@ -192,7 +192,7 @@ static void cb_player_capabilities_changed(vlc_player_t *p_player, int oldCapabi
     });
 }
 
-static void cb_player_position_changed(vlc_player_t *p_player, vlc_tick_t time, float position, void *p_data)
+static void cb_player_position_changed(vlc_player_t *p_player, vlc_tick_t time, double position, void *p_data)
 {
     VLC_UNUSED(p_player);
     dispatch_async(dispatch_get_main_queue(), ^{
@@ -414,7 +414,7 @@ static void cb_player_program_selection_changed(vlc_player_t *p_player,
 
 static void cb_player_atobloop_changed(vlc_player_t *p_player,
                                        enum vlc_player_abloop new_state,
-                                       vlc_tick_t time, float pos,
+                                       vlc_tick_t time, double pos,
                                        void *p_data)
 {
     VLC_UNUSED(p_player);


=====================================
modules/gui/qt/medialibrary/mlplaylistmedia.cpp
=====================================
@@ -165,7 +165,7 @@ QString MLPlaylistMedia::getMRLDisplay() const
 
 //-------------------------------------------------------------------------------------------------
 
-float MLPlaylistMedia::getProgress() const
+double MLPlaylistMedia::getProgress() const
 {
     return m_progress;
 }


=====================================
modules/gui/qt/medialibrary/mlplaylistmedia.hpp
=====================================
@@ -57,7 +57,7 @@ public: // Interface
     QString getMRL       () const;
     QString getMRLDisplay() const;
 
-    float   getProgress    () const;
+    double   getProgress    () const;
     QString getProgressTime() const;
 
     unsigned int getPlayCount() const;
@@ -87,7 +87,7 @@ private: // Properties
 
     QUrl m_mrl;
 
-    float   m_progress;
+    double   m_progress;
     QString m_progressTime;
 
     unsigned int m_playCount;


=====================================
modules/gui/qt/player/player_controller.cpp
=====================================
@@ -694,7 +694,7 @@ static void on_player_stats_changed(vlc_player_t *, const struct input_stats_t *
     });
 }
 
-static void on_player_atobloop_changed(vlc_player_t *, enum vlc_player_abloop state, vlc_tick_t time, float, void *data)
+static void on_player_atobloop_changed(vlc_player_t *, enum vlc_player_abloop state, vlc_tick_t time, double, void *data)
 {
     PlayerControllerPrivate* that = static_cast<PlayerControllerPrivate*>(data);
     msg_Dbg( that->p_intf, "on_player_atobloop_changed");


=====================================
modules/gui/qt/player/player_controller_p.hpp
=====================================
@@ -83,7 +83,7 @@ public:
 
     VLCTick      m_time = 0;
     VLCTick      m_remainingTime = 0;
-    float           m_position = 0.f;
+    double       m_position = 0.f;
     VLCTick      m_length= 0;
 
     QString m_highResolutionTime { "00:00:00:00" };


=====================================
modules/gui/skins2/src/vlcproc.cpp
=====================================
@@ -183,10 +183,10 @@ void on_player_capabilities_changed( vlc_player_t *player,
 }
 
 void on_player_position_changed( vlc_player_t *player, vlc_tick_t time,
-                                 float pos, void *data )
+                                 double pos, void *data )
 {
     (void)player;(void)time;
-    vlc_value_t val = { .f_float = pos};
+    vlc_value_t val = { .f_float = static_cast<float>(pos)};
     VlcProc::onGenericCallback( "position", val, data );
 }
 


=====================================
src/input/input.c
=====================================
@@ -181,7 +181,7 @@ void input_SetTime( input_thread_t *p_input, vlc_tick_t i_time, bool b_fast )
     input_ControlPush( p_input, INPUT_CONTROL_SET_TIME, &param );
 }
 
-void input_SetPosition( input_thread_t *p_input, float f_position, bool b_fast )
+void input_SetPosition( input_thread_t *p_input, double f_position, bool b_fast )
 {
     input_control_param_t param;
 
@@ -1943,7 +1943,7 @@ static bool Control( input_thread_t *p_input,
 
             /* Reset the decoders states and clock sync (before calling the demuxer */
             es_out_Control( priv->p_es_out, ES_OUT_RESET_PCR );
-            if( demux_SetPosition( priv->master->p_demux, (double)param.pos.f_val,
+            if( demux_SetPosition( priv->master->p_demux, param.pos.f_val,
                                    !param.pos.b_fast_seek, absolute ) )
             {
                 msg_Err( p_input, "INPUT_CONTROL_SET_POSITION "


=====================================
src/input/input_internal.h
=====================================
@@ -166,7 +166,7 @@ struct vlc_input_event_state
 
 struct vlc_input_event_times
 {
-    float position;
+    double position;
     vlc_tick_t time;
     vlc_tick_t normal_time;
     vlc_tick_t length;
@@ -331,7 +331,7 @@ void input_Close( input_thread_t * );
 
 void input_SetTime( input_thread_t *, vlc_tick_t i_time, bool b_fast );
 
-void input_SetPosition( input_thread_t *, float f_position, bool b_fast );
+void input_SetPosition( input_thread_t *, double f_position, bool b_fast );
 
 /**
  * Set the delay of an ES identifier
@@ -412,7 +412,7 @@ typedef union
     } time;
     struct {
         bool b_fast_seek;
-        float f_val;
+        double f_val;
     } pos;
     struct
     {


=====================================
src/input/thumbnailer.c
=====================================
@@ -47,7 +47,7 @@ struct seek_target
     union
     {
         vlc_tick_t time;
-        float pos;
+        double pos;
     };
 };
 
@@ -283,7 +283,7 @@ vlc_thumbnailer_RequestByTime( vlc_thumbnailer_t *thumbnailer,
 
 task_t *
 vlc_thumbnailer_RequestByPos( vlc_thumbnailer_t *thumbnailer,
-                              float pos, enum vlc_thumbnailer_seek_speed speed,
+                              double pos, enum vlc_thumbnailer_seek_speed speed,
                               input_item_t *item, vlc_tick_t timeout,
                               vlc_thumbnailer_cb cb, void* userdata )
 {


=====================================
src/player/input.c
=====================================
@@ -38,7 +38,7 @@ vlc_player_input_FindTrackById(struct vlc_player_input *input, vlc_es_id_t *id,
 
 static void
 vlc_player_input_HandleAtoBLoop(struct vlc_player_input *input, vlc_tick_t time,
-                                float pos)
+                                double pos)
 {
     vlc_player_t *player = input->player;
 
@@ -70,11 +70,11 @@ vlc_player_input_GetTime(struct vlc_player_input *input)
     return input->time;
 }
 
-float
+double
 vlc_player_input_GetPos(struct vlc_player_input *input)
 {
     vlc_player_t *player = input->player;
-    float pos;
+    double pos;
 
     if (input == player->input
      && vlc_player_GetTimerPoint(player, vlc_tick_now(), NULL, &pos) == 0)


=====================================
src/player/osd.c
=====================================
@@ -119,14 +119,14 @@ vlc_player_osd_Icon(vlc_player_t *player, short type)
 void
 vlc_player_osd_Position(vlc_player_t *player,
                         struct vlc_player_input *input, vlc_tick_t time,
-                        float position, enum vlc_player_whence whence)
+                        double position, enum vlc_player_whence whence)
 {
     if (input->length != VLC_TICK_INVALID)
     {
         if (time == VLC_TICK_INVALID)
             time = position * input->length;
         else
-            position = time / (float) input->length;
+            position = time / (double) input->length;
     }
 
     size_t count;


=====================================
src/player/player.c
=====================================
@@ -1365,7 +1365,7 @@ vlc_player_GetTime(vlc_player_t *player)
     return vlc_player_input_GetTime(input);
 }
 
-float
+double
 vlc_player_GetPosition(vlc_player_t *player)
 {
     struct vlc_player_input *input = vlc_player_get_input_locked(player);
@@ -1391,13 +1391,13 @@ vlc_player_DisplayPosition(vlc_player_t *player)
     if (!input)
         return;
     vlc_player_osd_Position(player, input,
-                                vlc_player_input_GetTime(input),
-                                vlc_player_input_GetPos(input),
-                                VLC_PLAYER_WHENCE_ABSOLUTE);
+                            vlc_player_input_GetTime(input),
+                            vlc_player_input_GetPos(input),
+                            VLC_PLAYER_WHENCE_ABSOLUTE);
 }
 
 void
-vlc_player_SeekByPos(vlc_player_t *player, float position,
+vlc_player_SeekByPos(vlc_player_t *player, double position,
                      enum vlc_player_seek_speed speed,
                      enum vlc_player_whence whence)
 {


=====================================
src/player/player.h
=====================================
@@ -68,7 +68,7 @@ struct vlc_player_input
     int capabilities;
     vlc_tick_t length;
 
-    float position;
+    double position;
     vlc_tick_t time;
     vlc_tick_t normal_time;
 
@@ -104,7 +104,7 @@ struct vlc_player_input
     struct
     {
         vlc_tick_t time;
-        float pos;
+        double pos;
         bool set;
     } abloop_state[2];
 
@@ -439,7 +439,7 @@ vlc_player_input_GetSelectedTrackStringIds(struct vlc_player_input *input,
 vlc_tick_t
 vlc_player_input_GetTime(struct vlc_player_input *input);
 
-float
+double
 vlc_player_input_GetPos(struct vlc_player_input *input);
 
 int
@@ -482,7 +482,7 @@ vlc_player_RemoveTimerSource(vlc_player_t *player, vlc_es_id_t *es_source);
 
 int
 vlc_player_GetTimerPoint(vlc_player_t *player, vlc_tick_t system_now,
-                         vlc_tick_t *out_ts, float *out_pos);
+                         vlc_tick_t *out_ts, double *out_pos);
 
 /*
  * player_vout.c
@@ -517,7 +517,7 @@ vlc_player_osd_Icon(vlc_player_t *player, short type);
 void
 vlc_player_osd_Position(vlc_player_t *player,
                         struct vlc_player_input *input, vlc_tick_t time,
-                        float position, enum vlc_player_whence whence);
+                        double position, enum vlc_player_whence whence);
 void
 vlc_player_osd_Volume(vlc_player_t *player, bool mute_action);
 


=====================================
src/player/timer.c
=====================================
@@ -399,7 +399,7 @@ vlc_player_RemoveTimerSource(vlc_player_t *player, vlc_es_id_t *es_source)
 
 int
 vlc_player_GetTimerPoint(vlc_player_t *player, vlc_tick_t system_now,
-                         vlc_tick_t *out_ts, float *out_pos)
+                         vlc_tick_t *out_ts, double *out_pos)
 {
     vlc_mutex_lock(&player->timer.lock);
     if (player->timer.best_source.point.system_date == VLC_TICK_INVALID)
@@ -474,7 +474,7 @@ vlc_player_RemoveTimer(vlc_player_t *player, vlc_player_timer_id *timer)
 int
 vlc_player_timer_point_Interpolate(const struct vlc_player_timer_point *point,
                                    vlc_tick_t system_now,
-                                   vlc_tick_t *out_ts, float *out_pos)
+                                   vlc_tick_t *out_ts, double *out_pos)
 {
     assert(point);
     assert(system_now > 0);
@@ -485,7 +485,7 @@ vlc_player_timer_point_Interpolate(const struct vlc_player_timer_point *point,
     const vlc_tick_t drift = point->system_date == VLC_TICK_MAX ? 0
                            : (system_now - point->system_date) * point->rate;
     vlc_tick_t ts = point->ts;
-    float pos = point->position;
+    double pos = point->position;
 
     if (ts != VLC_TICK_INVALID)
     {
@@ -495,7 +495,7 @@ vlc_player_timer_point_Interpolate(const struct vlc_player_timer_point *point,
     }
     if (point->length != VLC_TICK_INVALID)
     {
-        pos += drift / (float) point->length;
+        pos += drift / (double) point->length;
         if (unlikely(pos < 0.f))
             return VLC_EGENERIC;
         if (pos > 1.f)


=====================================
test/src/player/player.c
=====================================
@@ -45,7 +45,7 @@ struct report_capabilities
 struct report_position
 {
     vlc_tick_t time;
-    float pos;
+    double pos;
 };
 
 struct report_track_list
@@ -331,7 +331,7 @@ player_on_capabilities_changed(vlc_player_t *player, int old_caps, int new_caps,
 
 static void
 player_on_position_changed(vlc_player_t *player, vlc_tick_t time,
-                           float pos, void *data)
+                           double pos, void *data)
 {
     struct ctx *ctx = get_ctx(player, data);
     struct report_position report = {



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/77249644ecf8c63acdb9386112a76364fc5598aa...da687b726a1b3c76264b876ad609de68f216aa3e

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/77249644ecf8c63acdb9386112a76364fc5598aa...da687b726a1b3c76264b876ad609de68f216aa3e
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list