|
VLC 4.0.0-dev
|
Data Structures | |
| struct | vlc_player_timer_point |
| Player timer point. More... | |
| struct | vlc_player_timer_smpte_timecode |
| Player smpte timecode. More... | |
| struct | vlc_player_timer_cbs |
| Player timer callbacks. More... | |
| struct | vlc_player_timer_smpte_cbs |
| Player smpte timer callbacks. More... | |
Typedefs | |
| typedef struct vlc_player_timer_id | vlc_player_timer_id |
| Player timer opaque structure. More... | |
Functions | |
| vlc_player_timer_id * | vlc_player_AddTimer (vlc_player_t *player, vlc_tick_t min_period, const struct vlc_player_timer_cbs *cbs, void *cbs_data) |
| Add a timer in order to get times updates. More... | |
| vlc_player_timer_id * | vlc_player_AddSmpteTimer (vlc_player_t *player, const struct vlc_player_timer_smpte_cbs *cbs, void *cbs_data) |
| Add a smpte timer in order to get accurate video frame updates. More... | |
| void | vlc_player_RemoveTimer (vlc_player_t *player, vlc_player_timer_id *timer) |
| Remove a player timer. More... | |
| int | vlc_player_timer_point_Interpolate (const struct vlc_player_timer_point *point, vlc_tick_t system_now, vlc_tick_t *out_ts, double *out_pos) |
| Interpolate the last timer value to now. More... | |
| vlc_tick_t | vlc_player_timer_point_GetNextIntervalDate (const struct vlc_player_timer_point *point, vlc_tick_t system_now, vlc_tick_t interpolated_ts, vlc_tick_t next_interval) |
| Get the date of the next interval. More... | |
| typedef struct vlc_player_timer_id vlc_player_timer_id |
Player timer opaque structure.
| vlc_player_timer_id * vlc_player_AddSmpteTimer | ( | vlc_player_t * | player, |
| const struct vlc_player_timer_smpte_cbs * | cbs, | ||
| void * | cbs_data | ||
| ) |
Add a smpte timer in order to get accurate video frame updates.
| player | player instance (locked or not) |
| cbs | pointer to a vlc_player_timer_smpte_cbs structure, the structure must be valid during the lifetime of the player |
| cbs_data | opaque pointer used by the callbacks |
References vlc_player_timer_id::cbs, vlc_player_timer_id::data, vlc_player_timer_id::last_update_date, vlc_player_timer::lock, vlc_player_timer_id::node, vlc_player_timer_cbs::on_update, vlc_player_timer_id::period, vlc_player_timer_id::smpte_cbs, vlc_player_t::timer, vlc_list_append(), vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_TICK_INVALID.
| vlc_player_timer_id * vlc_player_AddTimer | ( | vlc_player_t * | player, |
| vlc_tick_t | min_period, | ||
| const struct vlc_player_timer_cbs * | cbs, | ||
| void * | cbs_data | ||
| ) |
Add a timer in order to get times updates.
| player | player instance (locked or not) |
| min_period | corresponds to the minimum period between each updates, use it to avoid flood from too many source updates, set it to VLC_TICK_INVALID to receive all updates. |
| cbs | pointer to a vlc_player_timer_cbs structure, the structure must be valid during the lifetime of the player |
| cbs_data | opaque pointer used by the callbacks |
References vlc_player_timer_id::cbs, vlc_player_timer_id::data, vlc_player_timer_id::last_update_date, vlc_player_timer::lock, vlc_player_timer_id::node, vlc_player_timer_cbs::on_update, vlc_player_timer_id::period, vlc_player_t::timer, vlc_list_append(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TICK_0, and VLC_TICK_INVALID.
| void vlc_player_RemoveTimer | ( | vlc_player_t * | player, |
| vlc_player_timer_id * | timer | ||
| ) |
Remove a player timer.
| player | player instance (locked or not) |
| timer | timer created by vlc_player_AddTimer() |
References vlc_player_timer::lock, vlc_player_timer_id::node, vlc_player_t::timer, vlc_list_remove(), vlc_mutex_lock(), and vlc_mutex_unlock().
| vlc_tick_t vlc_player_timer_point_GetNextIntervalDate | ( | const struct vlc_player_timer_point * | point, |
| vlc_tick_t | system_now, | ||
| vlc_tick_t | interpolated_ts, | ||
| vlc_tick_t | next_interval | ||
| ) |
Get the date of the next interval.
Can be used to setup an UI timer in order to update some widgets at specific interval. A next_interval of VLC_TICK_FROM_SEC(1) can be used to update a time widget when the media reaches a new second.
| point | time update obtained via the vlc_player_timer_cbs.on_update() |
| system_now | current system date |
| interpolated_ts | ts returned by vlc_player_timer_point_Interpolate() with the same system now |
| next_interval | next interval |
References vlc_player_timer_point::rate, and VLC_TICK_INVALID.
| int vlc_player_timer_point_Interpolate | ( | const struct vlc_player_timer_point * | point, |
| vlc_tick_t | system_now, | ||
| vlc_tick_t * | out_ts, | ||
| double * | out_pos | ||
| ) |
Interpolate the last timer value to now.
| point | time update obtained via the vlc_player_timer_cbs.on_update() callback |
| system_now | current system date |
| out_ts | pointer where to set the interpolated ts, subtract this time with VLC_TICK_0 to get the original value. |
| out_pos | pointer where to set the interpolated position |
References vlc_player_timer_point::length, vlc_player_timer_point::position, vlc_player_timer_point::rate, vlc_player_timer_point::system_date, vlc_player_timer_point::ts, unlikely, VLC_EGENERIC, VLC_SUCCESS, VLC_TICK_0, VLC_TICK_INVALID, and VLC_TICK_MAX.
Referenced by vlc_player_GetTimerPoint().