VideoPlayer: Update the current timestamp on state changes

The state could change and cause a timestamp change without the video
frame event firing, which could desync the seek bar from the video's
actual time.
This commit is contained in:
Zaggy1024 2023-04-12 00:30:07 -05:00 committed by Sam Atkins
parent dc049e36cf
commit 79779aff18
Notes: sideshowbarker 2024-07-16 21:28:11 +09:00

View file

@ -135,6 +135,10 @@ void VideoPlayerWidget::open_file(StringView filename)
m_playback_manager->on_playback_state_change = [this]() {
update_play_pause_icon();
// If we are seeking, do not set the timestamp, as that will override the seek position.
if (!m_was_playing_before_seek && m_playback_manager->get_state() != Video::PlaybackState::Seeking) {
set_current_timestamp(m_playback_manager->current_playback_time());
}
};
m_playback_manager->on_decoder_error = [this](auto error) {