Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f097e69658b94b477ef4a790e79fad82cefc6c6
      
https://github.com/WebKit/WebKit/commit/7f097e69658b94b477ef4a790e79fad82cefc6c6
  Author: Youenn Fablet <[email protected]>
  Date:   2025-01-31 (Fri, 31 Jan 2025)

  Changed paths:
    M LayoutTests/fast/mediastream/getUserMedia-echoCancellation-expected.txt
    M LayoutTests/fast/mediastream/getUserMedia-echoCancellation.html
    M Source/WebCore/Modules/mediastream/MediaTrackCapabilities.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h
    M Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm
    M Source/WebCore/platform/mock/MockMediaDevice.h
    M Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp
    M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  navigator.mediaDevices.getUserMedia({ audio: { echoCancellation: { exact : 
false } } }) is failing with OverConstrained error
rdar://143820857
https://bugs.webkit.org/show_bug.cgi?id=286680

Reviewed by Jean-Yves Avenard

Echo cancellation can have 3 values (on, off and support for both).
Before the patch, it would have only 2 values, meaning for supporting both 
would not be correctly handled for the fitness computation.
We update the code to handle all 3 values of echo cancellation support and 
update the fitness computation accordingly.

We also update how we apply constraints for devices that do not support both on 
and off values.

Covered by added test.

* LayoutTests/fast/mediastream/getUserMedia-echoCancellation-expected.txt:
* LayoutTests/fast/mediastream/getUserMedia-echoCancellation.html:
* Source/WebCore/Modules/mediastream/MediaTrackCapabilities.cpp:
(WebCore::capabilityBooleanVector):
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::fitnessDistance):
(WebCore::booleanSettingFromConstraint):
(WebCore::RealtimeMediaSource::applyConstraint):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::createForTesting):
(WebCore::CoreAudioCaptureSource::capabilities):
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockRealtimeAudioSource::create):
* Source/WebCore/platform/mock/MockMediaDevice.h:
* Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::m_timer):
(WebCore::MockRealtimeAudioSource::capabilities):
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::defaultDevices):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

Canonical link: https://commits.webkit.org/289609@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

Reply via email to