VideoPlayer: Use rounded seconds for the timestamp label

Previously, the time would read "00:00:01" when the timestamp was
merely 1 millisecond past the start of the video. If a video does not
start with a sample at timestamp 0, then, seeking to the start would
display that text rather than "00:00:00".
This commit is contained in:
Zaggy1024 2023-04-12 00:30:58 -05:00 committed by Sam Atkins
parent 79779aff18
commit 4df9ef487d
Notes: sideshowbarker 2024-07-17 06:20:50 +09:00

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/NumberFormat.h>
#include <LibFileSystemAccessClient/Client.h>
#include <LibGUI/Action.h>
#include <LibGUI/BoxLayout.h>
@ -249,8 +250,8 @@ void VideoPlayerWidget::set_time_label(Time timestamp)
{
StringBuilder string_builder;
auto append_time = [&](Time time) {
auto seconds = time.to_seconds();
string_builder.appendff("{:02}:{:02}:{:02}", seconds / 3600, seconds / 60, seconds % 60);
auto seconds = (time.to_milliseconds() + 500) / 1000;
string_builder.append(human_readable_digital_time(seconds));
};
append_time(timestamp);
@ -259,7 +260,7 @@ void VideoPlayerWidget::set_time_label(Time timestamp)
string_builder.append(" / "sv);
append_time(m_playback_manager->duration());
} else {
string_builder.append(" / --:--:--.---"sv);
string_builder.append(" / --:--:--"sv);
}
m_timestamp_label->set_text(string_builder.string_view());