vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Wed Dec 9 17:01:48 2020 +0100| [fa1c2fce8a530a2d5322dac3e8e7624b16dc57bb] | committer: Francois Cartegnie
player: timer: fix spurious wakeups from pause > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fa1c2fce8a530a2d5322dac3e8e7624b16dc57bb --- src/player/timer.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/player/timer.c b/src/player/timer.c index b5f5e38214..5afa4aa520 100644 --- a/src/player/timer.c +++ b/src/player/timer.c @@ -299,6 +299,10 @@ vlc_player_UpdateTimer(vlc_player_t *player, vlc_es_id_t *es_source, assert(point->ts != VLC_TICK_INVALID); + vlc_tick_t system_date = point->system_date; + if (player->timer.state == VLC_PLAYER_TIMER_STATE_PAUSED) + system_date = INT64_MAX; + /* An update after a discontinuity means that the playback is resumed */ if (player->timer.state == VLC_PLAYER_TIMER_STATE_DISCONTINUITY) player->timer.state = VLC_PLAYER_TIMER_STATE_PLAYING; @@ -328,11 +332,11 @@ vlc_player_UpdateTimer(vlc_player_t *player, vlc_es_id_t *es_source, /* When paused (INT64_MAX), the same ts can be send more than one time * from the video source, only send it if different in that case. */ if (point->ts != player->timer.last_ts - || source->point.system_date != point->system_date - || point->system_date != INT64_MAX) + || source->point.system_date != system_date + || system_date != INT64_MAX) { vlc_player_UpdateTimerSource(player, source, point->rate, point->ts, - point->system_date); + system_date); if (!vlc_list_is_empty(&source->listeners)) vlc_player_SendTimerSourceUpdates(player, source, force_update, @@ -361,7 +365,7 @@ vlc_player_UpdateTimer(vlc_player_t *player, vlc_es_id_t *es_source, if (point->ts != player->timer.last_ts && source->smpte.frame_rate != 0) { vlc_player_UpdateTimerSource(player, source, point->rate, point->ts, - point->system_date); + system_date); if (!vlc_list_is_empty(&source->listeners)) vlc_player_SendSmpteTimerSourceUpdates(player, source, _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits