[webkit-changes] [WebKit/WebKit] 1afb53: Expose https://w3c.github.io/mediacapture-image/#d...

youennf noreply at github.com
Wed Mar 15 04:18:30 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1afb53f1cc52623f60845f1c57acc703bca8bfa8
      https://github.com/WebKit/WebKit/commit/1afb53f1cc52623f60845f1c57acc703bca8bfa8
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt
    M LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints.html
    M LayoutTests/fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt
    A LayoutTests/fast/mediastream/mediastreamtrack-video-zoom-expected.txt
    A LayoutTests/fast/mediastream/mediastreamtrack-video-zoom.html
    M Source/WebCore/Modules/mediastream/MediaDevices.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.h
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
    M Source/WebCore/Modules/mediastream/MediaTrackConstraints.cpp
    M Source/WebCore/Modules/mediastream/MediaTrackConstraints.h
    M Source/WebCore/Modules/mediastream/MediaTrackConstraints.idl
    M Source/WebCore/Modules/mediastream/MediaTrackSupportedConstraints.h
    M Source/WebCore/Modules/mediastream/MediaTrackSupportedConstraints.idl
    M Source/WebCore/platform/mediastream/MediaConstraints.cpp
    M Source/WebCore/platform/mediastream/MediaConstraints.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.h
    M Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h
    M Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeVideoSource.h
    M Source/WebCore/platform/mediastream/VideoPreset.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm
    M Source/WebCore/platform/mock/MockMediaDevice.h
    M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Expose https://w3c.github.io/mediacapture-image/#dom-mediatrackcapabilities-zoom
https://bugs.webkit.org/show_bug.cgi?id=253646
rdar://problem/106498125

Reviewed by Eric Carlson.

Add support for https://w3c.github.io/mediacapture-image/#dom-mediatrackcapabilities-zoom.
Expose zoom as a supported constraint.
In AVVideoCaptureSource, we currently restrict zoom to 4 at most to limit potential privacy issue, since controlling zoom is supposed to require higher camera priviledges.
This requires some changes to RealtimeVideoCaptureSource since we set size, frame rate and zoom at the same time.

Update mock camera to support zooming and add new test to cover this.
When mock camera is using zoom, we set the background to red.

* LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt:
* LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints.html:
* LayoutTests/fast/mediastream/mediastreamtrack-video-zoom-expected.txt: Added.
* LayoutTests/fast/mediastream/mediastreamtrack-video-zoom.html: Added.
* Source/WebCore/Modules/mediastream/MediaDevices.cpp:
(WebCore::hasInvalidGetDisplayMediaConstraint):
(WebCore::MediaDevices::getSupportedConstraints):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::getSettings const):
(WebCore::MediaStreamTrack::getCapabilities const):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.h:
* Source/WebCore/Modules/mediastream/MediaStreamTrack.idl:
* Source/WebCore/Modules/mediastream/MediaTrackConstraints.cpp:
(WebCore::convertToInternalForm):
* Source/WebCore/Modules/mediastream/MediaTrackConstraints.h:
* Source/WebCore/Modules/mediastream/MediaTrackConstraints.idl:
* Source/WebCore/Modules/mediastream/MediaTrackSupportedConstraints.h:
* Source/WebCore/Modules/mediastream/MediaTrackSupportedConstraints.idl:
* Source/WebCore/platform/mediastream/MediaConstraints.cpp:
(WebCore::MediaTrackConstraintSetMap::filter const):
(WebCore::MediaTrackConstraintSetMap::set):
* Source/WebCore/platform/mediastream/MediaConstraints.h:
(WebCore::MediaTrackConstraintSetMap::zoom const):
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::supportsSizeFrameRateAndZoom):
(WebCore::RealtimeMediaSource::fitnessDistance):
(WebCore::RealtimeMediaSource::setSizeFrameRateAndZoom):
(WebCore::RealtimeMediaSource::applyConstraint):
(WebCore::RealtimeMediaSource::selectSettings):
(WebCore::RealtimeMediaSource::supportsConstraint):
(WebCore::RealtimeMediaSource::supportsConstraints):
(WebCore::RealtimeMediaSource::applyConstraints):
(WebCore::RealtimeMediaSource::setZoom):
(WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): Deleted.
(WebCore::RealtimeMediaSource::setSizeAndFrameRate): Deleted.
* Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:
(WebCore::RealtimeMediaSourceCapabilities::RealtimeMediaSourceCapabilities):
(WebCore::RealtimeMediaSourceCapabilities::supportsZoom const):
(WebCore::RealtimeMediaSourceCapabilities::zoom const):
(WebCore::RealtimeMediaSourceCapabilities::setZoom):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.cpp:
(WebCore::RealtimeMediaSourceSettings::convertFlagsToString):
(WebCore::RealtimeMediaSourceSettings::difference const):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h:
(WebCore::RealtimeMediaSourceSettings::allFlags):
(WebCore::RealtimeMediaSourceSettings::RealtimeMediaSourceSettings):
(WebCore::RealtimeMediaSourceSettings::supportsZoom const):
(WebCore::RealtimeMediaSourceSettings::zoom const):
(WebCore::RealtimeMediaSourceSettings::setZoom):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp:
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsConstraint const):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
(WebCore::RealtimeMediaSourceSupportedConstraints::RealtimeMediaSourceSupportedConstraints):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsZoom const):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsZoom):
* Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::updateCapabilities):
(WebCore::RealtimeVideoCaptureSource::supportsSizeFrameRateAndZoom):
(WebCore::RealtimeVideoCaptureSource::presetSupportsFrameRate):
(WebCore::RealtimeVideoCaptureSource::presetSupportsZoom):
(WebCore::zoomFromPreset):
(WebCore::RealtimeVideoCaptureSource::bestSupportedSizeFrameRateAndZoom):
(WebCore::RealtimeVideoCaptureSource::setSizeFrameRateAndZoom):
(WebCore::RealtimeVideoCaptureSource::clientUpdatedSizeFrameRateAndZoom):
(WebCore::SizeFrameRateAndZoom::toJSONObject const):
(WebCore::SizeFrameRateAndZoom::toJSONString const):
(WebCore::RealtimeVideoCaptureSource::supportsSizeAndFrameRate): Deleted.
(WebCore::RealtimeVideoCaptureSource::bestSupportedSizeAndFrameRate): Deleted.
(WebCore::RealtimeVideoCaptureSource::setSizeAndFrameRate): Deleted.
(WebCore::RealtimeVideoCaptureSource::clientUpdatedSizeAndFrameRate): Deleted.
(WebCore::SizeAndFrameRate::toJSONObject const): Deleted.
(WebCore::SizeAndFrameRate::toJSONString const): Deleted.
* Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h:
(WTF::LogArgument<WebCore::SizeFrameRateAndZoom>::toString):
(WTF::LogArgument<WebCore::SizeAndFrameRate>::toString): Deleted.
* Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::supportsSizeFrameRateAndZoom):
(WebCore::RealtimeVideoSource::setSizeFrameRateAndZoom):
(WebCore::RealtimeVideoSource::settingsDidChange):
(WebCore::RealtimeVideoSource::supportsSizeAndFrameRate): Deleted.
(WebCore::RealtimeVideoSource::setSizeAndFrameRate): Deleted.
* Source/WebCore/platform/mediastream/RealtimeVideoSource.h:
* Source/WebCore/platform/mediastream/VideoPreset.h:
(WebCore::VideoPreset::create):
(WebCore::VideoPreset::VideoPreset):
(WebCore::VideoPreset::log const):
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::computeMaxZoom):
(WebCore::AVVideoPreset::AVVideoPreset):
(WebCore::AVVideoCaptureSource::settings):
(WebCore::AVVideoCaptureSource::setFrameRateAndZoomWithPreset):
(WebCore::AVVideoCaptureSource::setSessionSizeFrameRateAndZoom):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::setFrameRateWithPreset): Deleted.
(WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate): Deleted.
* Source/WebCore/platform/mock/MockMediaDevice.h:
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::defaultDevices):
* Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::supportsSizeFrameRateAndZoom):
(WebCore::MockRealtimeVideoSource::setSizeFrameRateAndZoom):
(WebCore::MockRealtimeVideoSource::capabilities):
(WebCore::MockRealtimeVideoSource::settings):
(WebCore::MockRealtimeVideoSource::setFrameRateAndZoomWithPreset):
(WebCore::MockRealtimeVideoSource::generateFrame):
(WebCore::MockRealtimeVideoSource::supportsSizeAndFrameRate): Deleted.
(WebCore::MockRealtimeVideoSource::setSizeAndFrameRate): Deleted.
(WebCore::MockRealtimeVideoSource::setFrameRateWithPreset): Deleted.
* Source/WebCore/platform/mock/MockRealtimeVideoSource.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

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




More information about the webkit-changes mailing list