player: use double for the position

This commit is contained in:
Thomas Guillem 2022-08-03 13:53:48 +02:00 committed by Jean-Baptiste Kempf
parent a680a82b05
commit c0de748a3b
13 changed files with 38 additions and 38 deletions

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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");

View File

@ -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" };

View File

@ -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 );
}

View File

@ -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)

View File

@ -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;

View File

@ -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)
{

View File

@ -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);

View File

@ -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)

View File

@ -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 = {