From 6b51c3c1cec84711b7a2e51fa5c1c496af53546e Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Mon, 10 Apr 2023 13:14:37 -0400 Subject: [PATCH] LibWeb: Report HTMLMediaElement duration with sub-second accuracy We currently use Time::to_seconds() to report a video's duration. The video, however, may have a sub-second duration. For example, the video used by the video test page is 12.05 seconds long. --- Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp index b3b8d10048..632345a113 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp @@ -676,7 +676,8 @@ WebIDL::ExceptionOr HTMLMediaElement::process_media_data(Function // 4. Update the duration attribute with the time of the last frame of the resource, if known, on the media timeline established above. If it is // not known (e.g. a stream that is in principle infinite), update the duration attribute to the value positive Infinity. // FIXME: Handle unbounded media resources. - set_duration(static_cast(video_track->duration().to_seconds())); + auto duration = static_cast(video_track->duration().to_milliseconds()); + set_duration(duration / 1000.0); // 5. For video elements, set the videoWidth and videoHeight attributes, and queue a media element task given the media element to fire an event // named resize at the media element.