Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bc5355f67f69e837837f1519fdf132976f40d2c2
https://github.com/WebKit/WebKit/commit/bc5355f67f69e837837f1519fdf132976f40d2c2
Author: Youenn Fablet <[email protected]>
Date: 2024-03-07 (Thu, 07 Mar 2024)
Changed paths:
M Source/WebCore/PAL/pal/mac/ScreenCaptureKitSoftLink.h
M Source/WebCore/PAL/pal/mac/ScreenCaptureKitSoftLink.mm
M Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.h
M Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm
Log Message:
-----------
getDisplayMedia captured windows get black frames when window gets resized
https://bugs.webkit.org/show_bug.cgi?id=270568
rdar://124131045
Reviewed by Eric Carlson.
When a window size changes, we may need to update the capture size so as to
respect aspect ratio and not introduce black frames.
For that purpose, we store the content size in
ScreenCaptureKitCaptureSource::m_contentSize and we initialize it at start up
using SCContentFilter.
Then, when capture has started, we get the content size from the sample buffer
attachment, using SCStreamFrameInfoScaleFactor, SCStreamFrameInfoContentScale
and SCStreamFrameInfoContentRect.
If m_contentSize changes, we update the capture size.
We ensure that the capture size keeps the aspect ratio even in case where width
and height are set via media constraints by either computing width from height
or the reverse but keeping aspect ratio computed from m_contentSize.
* Source/WebCore/PAL/pal/mac/ScreenCaptureKitSoftLink.h:
* Source/WebCore/PAL/pal/mac/ScreenCaptureKitSoftLink.mm:
* Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::streamDidOutputVideoSampleBuffer):
Canonical link: https://commits.webkit.org/275794@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