Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5756012375b90fd63a73eeee8295d88c739bd350
https://github.com/WebKit/WebKit/commit/5756012375b90fd63a73eeee8295d88c739bd350
Author: Przemyslaw Gorszkowski <[email protected]>
Date: 2026-06-12 (Fri, 12 Jun 2026)
Changed paths:
M Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp
M Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.h
M Source/WebCore/Modules/mediastream/MediaDeviceInfo.cpp
M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
M Source/WebCore/dom/Document.cpp
M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
M Source/WebCore/platform/mediastream/CaptureDevice.h
M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
M Source/WebCore/platform/mediastream/cocoa/DisplayCaptureManagerCocoa.cpp
M Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp
M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
M Source/WebKit/GPUProcess/webrtc/UserMediaCaptureManagerProxy.cpp
Log Message:
-----------
[GStreamer] Video element with canvas captureStream source should not use
holepunch rendering
https://bugs.webkit.org/show_bug.cgi?id=316297
Reviewed by Philippe Normand.
Introduce a dedicated Canvas device type in CaptureDevice::DeviceType
to distinguish CanvasCaptureMediaStreamTrack sources from Camera sources.
Update all switch statements and type checks across the mediastream stack to
handle Canvas as a video type.
Disable GStreamer hole-punch rendering for canvas-captured streams since they
render via a different path.
No new tests.
There is: ManualTests/mediastream/mediastream-canvas-to-video.html, which can
be used to test this change. It should behave in the same way with:
WEBKIT_GST_HOLE_PUNCH_QUIRK=fake and without it.
* Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::Source):
* Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
* Source/WebCore/Modules/mediastream/MediaDeviceInfo.cpp:
(WebCore::toMediaDeviceInfoKind):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::captureState):
* Source/WebCore/dom/Document.cpp:
(WebCore::updateCaptureSourceToPageMutedState):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::isHolePunchRenderingEnabled const):
* Source/WebCore/platform/mediastream/CaptureDevice.h:
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::toSourceType):
*
Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp:
(WebCore::GStreamerCaptureDeviceManager::refreshCaptureDevices):
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:
Canonical link: https://commits.webkit.org/315089@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications