From 6cd50d19109062c7b577185ae9d1cdd24d37c550 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Fri, 14 Apr 2023 07:27:28 -0400 Subject: [PATCH] LibWeb: Change the callback used to detect the end of a video stream The on_end_of_stream callback was added to notify clients that video playback has stopped when we didn't have a way to retrieve the playback state from Video::PlaybackManager. Now that we do, we should consolidate on using the on_playback_state_change callback to detect such changes. --- Userland/Libraries/LibWeb/HTML/VideoTrack.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/VideoTrack.cpp b/Userland/Libraries/LibWeb/HTML/VideoTrack.cpp index a80d2ab892..7686d1469a 100644 --- a/Userland/Libraries/LibWeb/HTML/VideoTrack.cpp +++ b/Userland/Libraries/LibWeb/HTML/VideoTrack.cpp @@ -37,9 +37,17 @@ VideoTrack::VideoTrack(JS::Realm& realm, JS::NonnullGCPtr medi m_media_element->set_current_playback_position(playback_position_ms / 1000.0); }; - m_playback_manager->on_end_of_stream = [this]() { - auto playback_position_ms = static_cast(duration().to_milliseconds()); - m_media_element->set_current_playback_position(playback_position_ms / 1000.0); + m_playback_manager->on_playback_state_change = [this]() { + switch (m_playback_manager->get_state()) { + case Video::PlaybackState::Stopped: { + auto playback_position_ms = static_cast(duration().to_milliseconds()); + m_media_element->set_current_playback_position(playback_position_ms / 1000.0); + break; + } + + default: + break; + } }; m_playback_manager->on_decoder_error = [](auto) {