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

Reply via email to