Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fafc27995052a8103c0d999576767b746e27722c
https://github.com/WebKit/WebKit/commit/fafc27995052a8103c0d999576767b746e27722c
Author: Youenn Fablet <[email protected]>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h
M Source/WebCore/platform/mediastream/mac/CoreAudioSharedInternalUnit.h
M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp
M
Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp
Log Message:
-----------
MediaStreamTrack audio rendering may be broken in case page is capturing with
and without echo cancellation
https://bugs.webkit.org/show_bug.cgi?id=286572
rdar://143691994
Reviewed by Eric Carlson.
Audio rendering through the capture unit is only supported for VPIO.
We need to reevaluate whether using the capture unit for audio rendering
everytime a new audio unit is stored.
We add a method to CoreAudioSpeakerSamplesProducer to handle this and we update
CoreAudioSharedUnit and
RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit to deal with it.
We implement
RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::canRenderAudioChanged
by asynchronoulsy updating the audio rendering unit to prevent a deadlock.
We do a small refactoring in
RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit so that there is a
single routine that computes whther audio rendering should go through the
capture unit.
We fix CoreAudioSharedInternalUnit::canRenderAudio to properly handle this as
well.
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedInternalUnit.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp:
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
*
Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::computeShouldRegisterAsSpeakerSamplesProducer
const):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::setShouldRegisterAsSpeakerSamplesProducer):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::start):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::updateShouldRegisterAsSpeakerSamplesProducer):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::canRenderAudioChanged):
Canonical link: https://commits.webkit.org/289449@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