mirror of https://code.videolan.org/videolan/vlc
player: use double for the position
This commit is contained in:
parent
a680a82b05
commit
c0de748a3b
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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" };
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 = {
|
||||
|
|
Loading…
Reference in New Issue