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

Reply via email to