Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c83c252e819519949155fd90995230fc40afd2a2
      
https://github.com/WebKit/WebKit/commit/c83c252e819519949155fd90995230fc40afd2a2
  Author: Youenn Fablet <[email protected]>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    A 
LayoutTests/http/wpt/mediastream/mediastreamtrackprocessor-videoframe-timestamp-expected.txt
    A 
LayoutTests/http/wpt/mediastream/mediastreamtrackprocessor-videoframe-timestamp.html
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h
    M Source/WebCore/platform/VideoFrame.cpp
    M Source/WebCore/platform/VideoFrame.h
    M Source/WebCore/platform/graphics/cv/VideoFrameCV.h
    M Source/WebCore/platform/graphics/cv/VideoFrameCV.mm
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.h
    M Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.cpp
    M Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h
    M Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.cpp
    M Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.h

  Log Message:
  -----------
  WebCodecsVideoFrame should set its VideoFrame presentationTime at 
construction time
https://bugs.webkit.org/show_bug.cgi?id=267994
rdar://121512179

Reviewed by Eric Carlson.

Consumers of WebCodecsVideoFrame like MediaStreamTrackProcessor use VideoFrame 
presentationTime instead of WebCodecsVideoFrame timestamp.
We need to keep them in sync and this patch does it at construction time.
We introduce a VideoFrame clone() method for the case where we cannot update 
the VideoFrame presentationTime directly.
We cannot remove WebCodecsVideoFrame timestamp since timestamp needs to stay 
even if WebCodecsVideoFrame is closed.

* 
LayoutTests/http/wpt/mediastream/mediastreamtrackprocessor-videoframe-timestamp-expected.txt:
 Added.
* 
LayoutTests/http/wpt/mediastream/mediastreamtrackprocessor-videoframe-timestamp.html:
 Added.
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp:
(WebCore::timestampToMediaTime):
(WebCore::mediaTimeToTimestamp):
(WebCore::WebCodecsVideoFrame::create):
(WebCore::WebCodecsVideoFrame::initializeFrameFromOtherFrame):
(WebCore::WebCodecsVideoFrame::initializeFrameWithResourceAndSize):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h:
* Source/WebCore/platform/VideoFrame.cpp:
(WebCore::VideoFrame::updateTimestamp):
* Source/WebCore/platform/VideoFrame.h:
* Source/WebCore/platform/graphics/cv/VideoFrameCV.h:
* Source/WebCore/platform/graphics/cv/VideoFrameCV.mm:
(WebCore::VideoFrameCV::VideoFrameCV):
(WebCore::VideoFrameCV::clone):
* Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp:
(WebCore::VideoFrame::clone):
* Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.h:
* Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.cpp:
(WebCore::VideoFrameLibWebRTC::clone):
* Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h:
* Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):
(WebKit::m_pixelFormat):
(WebKit::RemoteVideoFrameProxy::~RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::identifier const):
(WebKit::RemoteVideoFrameProxy::newReadReference const):
(WebKit::RemoteVideoFrameProxy::pixelBuffer const):
(WebKit::RemoteVideoFrameProxy::clone):
* Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.h:

Canonical link: https://commits.webkit.org/273496@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to