Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a55b02b30969b388345ad2879313b4877d978120
https://github.com/WebKit/WebKit/commit/a55b02b30969b388345ad2879313b4877d978120
Author: Youenn Fablet <[email protected]>
Date: 2023-09-22 (Fri, 22 Sep 2023)
Changed paths:
M LayoutTests/platform/glib/TestExpectations
A LayoutTests/webrtc/video-clone-track-expected.txt
A LayoutTests/webrtc/video-clone-track.html
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
Log Message:
-----------
Cloned video MediaStreamTrack has another resolution than original track
https://bugs.webkit.org/show_bug.cgi?id=261329
rdar://115551680
Reviewed by Jean-Yves Avenard.
When cloning a track, we are adding a new SourceProxy as obserer of the
underlying source.
This works fine for video tracks in case the SourceProxy is not
resizing/reducing frame rate of the source via addVideoFrameObserver size/frame
rate parameters.
This resizing may happen for instance if the application wants a resolution
that is not directly supported by the camera.
Before the patch, the clone would register itself via addVideoFrameObserver
without parameters, which would trigger no resizing/reducing frame rate.
After the patch, we first copy the settings from the original source to the
cloned source.
We then call addVideoFrameObserver with the right parameters.
Covered by added test.
* LayoutTests/webrtc/video-clone-track-expected.txt: Added.
* LayoutTests/webrtc/video-clone-track.html: Added.
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::~SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::observeMedia):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::clone):
Canonical link: https://commits.webkit.org/268307@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes