Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 154de6967e0b4ec901fe8e2fe6843622664e6c45
      
https://github.com/WebKit/WebKit/commit/154de6967e0b4ec901fe8e2fe6843622664e6c45
  Author: Youenn Fablet <[email protected]>
  Date:   2024-09-23 (Mon, 23 Sep 2024)

  Changed paths:
    M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h
    M Source/WebCore/platform/mediastream/mac/CoreAudioSharedInternalUnit.h
    M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.h
    M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.mm
    M Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm

  Log Message:
  -----------
  [iOS] voice activity detection is not working
rdar://135942656
https://bugs.webkit.org/show_bug.cgi?id=280056

Reviewed by Eric Carlson.

On iOS, we first need to mute the VPIO unit and then set the voice activity 
listener.
We rework the listener enablement/disablement code so that it works for both 
macOS and iOS.

We introduce CoreAudioSharedUnit::shouldEnableVoiceActivityDetection which 
tells whether voice activity listener should be on.
On iOS, it will return true if VPIO is started, muted and the voice activity 
callback is set.
On macOS, we do not check whether VPIO is muted as this is not necessary.
This allows tabs that have been muted due to another page capturing to receive 
notifications of voice activity if the tab is visible.

We introduce CoreAudioSharedUnit::updateVoiceActiveDetection which will call 
CoreAudioSharedInternalUnit::setVoiceActivityDetection according 
CoreAudioSharedUnit::shouldEnableVoiceActivityDetection.
CoreAudioSharedUnit::updateVoiceActiveDetection is called from various places 
when some capture states change.

Tested on macOS and iOS devices.

* Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h:
(WebCore::BaseAudioSharedUnit::hasVoiceActivityListenerCallback const):
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedInternalUnit.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp:
(WebCore::CoreAudioSharedUnit::~CoreAudioSharedUnit):
(WebCore::CoreAudioSharedUnit::cleanupAudioUnit):
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioSharedUnit::isProducingMicrophoneSamplesChanged):
(WebCore::CoreAudioSharedUnit::stopInternal):
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.mm:
(WebCore::CoreAudioSharedUnit::shouldEnableVoiceActivityDetection const):
(WebCore::CoreAudioSharedUnit::updateVoiceActiveDetection):
(WebCore::CoreAudioSharedInternalUnit::setVoiceActivityDetection):
(WebCore::CoreAudioSharedUnit::enableMutedSpeechActivityEventListener):
(WebCore::CoreAudioSharedUnit::disableMutedSpeechActivityEventListener):
* Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockAudioSharedInternalUnit::setVoiceActivityDetection):

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