[webkit-changes] [WebKit/WebKit] 1796e2: Consider using HAL output unit in case echo cancel...

youennf noreply at github.com
Wed Jan 4 04:25:33 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1796e2f138aba9c879d20e49e6458ae7e3fef898
      https://github.com/WebKit/WebKit/commit/1796e2f138aba9c879d20e49e6458ae7e3fef898
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-01-04 (Wed, 04 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h
    M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.h
    M Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm
    M Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp

  Log Message:
  -----------
  Consider using HAL output unit in case echo cancellation is disabled
https://bugs.webkit.org/show_bug.cgi?id=235643
rdar://problem/88379822

Reviewed by Eric Carlson.

We use RemoteIO aon iOS or HAL on macOS to capture microphone when echo cancellation is off.
This allows to bypass voice specific processing and gets higher fidelity recording.
On macOS, we only use HAL for recording and not rendering of audio.
For that reason we introduce isAudioCaptureUnitRenderingAudio in WebCore that is used in WebKit to play audio or not through the capture unit.
Update MockAudioSharedInternalUnit to enable echo cancellation according the boolean parameter instead of properties provided to MockAudioSharedInternalUnit.

* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSourceFactory::isAudioCaptureUnitRenderingAudio):
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp:
(WebCore::CoreAudioSharedInternalUnit::create):
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::validateOutputDevice):
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.h:
* Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockAudioSharedUnit::singleton):
(WebCore::MockAudioSharedInternalUnit::MockAudioSharedInternalUnit):
(WebCore::MockAudioSharedInternalUnit::set):
* Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::captureUnitIsStarting):

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




More information about the webkit-changes mailing list