From c0de748a3bfb922879fd636b092ff5e4af13b25c Mon Sep 17 00:00:00 2001 From: Thomas Guillem Date: Wed, 3 Aug 2022 13:53:48 +0200 Subject: [PATCH] player: use double for the position --- include/vlc_player.h | 18 +++++++++--------- lib/media_player.c | 2 +- modules/control/cli/player.c | 2 +- .../gui/macosx/playlist/VLCPlayerController.m | 4 ++-- modules/gui/qt/player/player_controller.cpp | 2 +- modules/gui/qt/player/player_controller_p.hpp | 2 +- modules/gui/skins2/src/vlcproc.cpp | 4 ++-- src/player/input.c | 6 +++--- src/player/osd.c | 4 ++-- src/player/player.c | 10 +++++----- src/player/player.h | 10 +++++----- src/player/timer.c | 8 ++++---- test/src/player/player.c | 4 ++-- 13 files changed, 38 insertions(+), 38 deletions(-) diff --git a/include/vlc_player.h b/include/vlc_player.h index eae95abdd2..751da65c8d 100644 --- a/include/vlc_player.h +++ b/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 diff --git a/lib/media_player.c b/lib/media_player.c index 043568e25d..c8988ca246 100644 --- a/lib/media_player.c +++ b/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; diff --git a/modules/control/cli/player.c b/modules/control/cli/player.c index 7ec6311dcd..f81d6b5117 100644 --- a/modules/control/cli/player.c +++ b/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; diff --git a/modules/gui/macosx/playlist/VLCPlayerController.m b/modules/gui/macosx/playlist/VLCPlayerController.m index 640876c9e1..c35373a73d 100644 --- a/modules/gui/macosx/playlist/VLCPlayerController.m +++ b/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); diff --git a/modules/gui/qt/player/player_controller.cpp b/modules/gui/qt/player/player_controller.cpp index b647bd0d5e..cb4076c910 100644 --- a/modules/gui/qt/player/player_controller.cpp +++ b/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(data); msg_Dbg( that->p_intf, "on_player_atobloop_changed"); diff --git a/modules/gui/qt/player/player_controller_p.hpp b/modules/gui/qt/player/player_controller_p.hpp index 7de89700cf..f527667e01 100644 --- a/modules/gui/qt/player/player_controller_p.hpp +++ b/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" }; diff --git a/modules/gui/skins2/src/vlcproc.cpp b/modules/gui/skins2/src/vlcproc.cpp index 218e7d7eac..0364603d22 100644 --- a/modules/gui/skins2/src/vlcproc.cpp +++ b/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(pos)}; VlcProc::onGenericCallback( "position", val, data ); } diff --git a/src/player/input.c b/src/player/input.c index aa12af0429..bb51fe1d33 100644 --- a/src/player/input.c +++ b/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) diff --git a/src/player/osd.c b/src/player/osd.c index 92eb40be9b..756a2281b2 100644 --- a/src/player/osd.c +++ b/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; diff --git a/src/player/player.c b/src/player/player.c index 6e9ecc9efa..ccc73958f6 100644 --- a/src/player/player.c +++ b/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) { diff --git a/src/player/player.h b/src/player/player.h index 77003c60ad..d5e1810a4b 100644 --- a/src/player/player.h +++ b/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); diff --git a/src/player/timer.c b/src/player/timer.c index aa432131ec..2563362630 100644 --- a/src/player/timer.c +++ b/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) diff --git a/test/src/player/player.c b/test/src/player/player.c index f907d12075..bb63ca3f74 100644 --- a/test/src/player/player.c +++ b/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 = {