diff --git a/src/player/player.h b/src/player/player.h index 1bd706a6c9..4fd238296c 100644 --- a/src/player/player.h +++ b/src/player/player.h @@ -234,6 +234,7 @@ struct vlc_player_timer { UPDATE_STATE_RESUMED, UPDATE_STATE_PAUSED, + UPDATE_STATE_RESUMING, } update_state; bool stopping; diff --git a/src/player/timer.c b/src/player/timer.c index fe96655641..80792b1f26 100644 --- a/src/player/timer.c +++ b/src/player/timer.c @@ -276,7 +276,7 @@ vlc_player_UpdateTimerEvent(vlc_player_t *player, vlc_es_id_t *es_source, case VLC_PLAYER_TIMER_EVENT_PLAYING: assert(!player->timer.stopping); - player->timer.update_state = UPDATE_STATE_RESUMED; + player->timer.update_state = UPDATE_STATE_RESUMING; break; case VLC_PLAYER_TIMER_EVENT_STOPPING: @@ -420,6 +420,9 @@ vlc_player_UpdateTimerBestSource(vlc_player_t *player, vlc_es_id_t *es_source, if (!vlc_list_is_empty(&source->listeners)) vlc_player_SendTimerSourceUpdates(player, source, force_update, &source->point); + + if (player->timer.update_state == UPDATE_STATE_RESUMING) + player->timer.update_state = UPDATE_STATE_RESUMED; } } }