Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2f99587301ddbd1cb13f42c6406b5b4da0d66db9
https://github.com/WebKit/WebKit/commit/2f99587301ddbd1cb13f42c6406b5b4da0d66db9
Author: Jean-Yves Avenard <[email protected]>
Date: 2024-11-22 (Fri, 22 Nov 2024)
Changed paths:
A LayoutTests/media/media-rvfc-playing-webm-expected.txt
A LayoutTests/media/media-rvfc-playing-webm.html
M LayoutTests/platform/mac-wk1/TestExpectations
M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h
M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h
M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm
Log Message:
-----------
[WebM] requestVideoFrameCallback may only works once.
https://bugs.webkit.org/show_bug.cgi?id=283533
rdar://140384096
Reviewed by Jer Noble.
The MediaPlayerPrivateWebM could have registered multiple times to get new
video frames notifications
which upon resolving would clear the last callback.
Pending frames wouldn't trigger the requestVideoFrameCallback's callback call
as a result.
We also improve the accuracy of the metadata values returned by capturing the
display's presentationTime
at the time it actually is pushed to the layer.
We also attached to the new video frame callback the frame's presentationTime
and the displayTime.
And we now track the actual number of frames pushed to the layer.
Added test.
* LayoutTests/media/media-rvfc-playing-webm-expected.txt: Added.
* LayoutTests/media/media-rvfc-playing-webm.html: Added.
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
(WebCore::MediaPlayerPrivateWebM::updateLastImage):
(WebCore::MediaPlayerPrivateWebM::setHasAvailableVideoFrame):
(WebCore::MediaPlayerPrivateWebM::enqueueSample):
(WebCore::MediaPlayerPrivateWebM::checkNewVideoFrameMetadata):
(WebCore::MediaPlayerPrivateWebM::setVideoRenderer):
(WebCore::MediaPlayerPrivateWebM::registerNotifyWhenHasAvailableVideoFrame):
Deleted.
* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h:
* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm:
(WebCore::VideoMediaSampleRenderer::initializeDecompressionSession):
(WebCore::VideoMediaSampleRenderer::maybeQueueFrameForDisplay):
(WebCore::VideoMediaSampleRenderer::totalDisplayedFrames const):
(WebCore::VideoMediaSampleRenderer::notifyWhenHasAvailableVideoFrame):
(WebCore::VideoMediaSampleRenderer::notifyHasAvailableVideoFrame):
Canonical link: https://commits.webkit.org/286994@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes