[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, ¶m );
}
-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