Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bdaffe35a57ea067f07b46dd45ba29a1c0557afd
https://github.com/WebKit/WebKit/commit/bdaffe35a57ea067f07b46dd45ba29a1c0557afd
Author: Youenn Fablet <[email protected]>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M
Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp
M
Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp
M
Source/WebCore/platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.cpp
Log Message:
-----------
iOS Safari: `setSinkId()` returns success but audio output doesn't actually
switch on single-track WebRTC MediaStream. Works correctly with dual-track
streams.
rdar://183147942
https://bugs.webkit.org/show_bug.cgi?id=320087
Reviewed by Jean-Yves Avenard.
For iOS, all webrtc tracks are mixed in a source, whose id is "default".
This is is used when adding the mixed source to the webprocess wide renderer
and we would use the id to set the destination speaker.
The webrtc track renderer IncomingAudioMediaStreamTrackRendererUnit would also
set the destination speaker everytime a new webrtc track is added.
This makes speaker selection works in case two webrtc tracks are rendered. If
there is only one webrtc track rendered, "default" would be used.
We simplify the handling by setting the destination speaker whenever starting
to render an audio track (whether webrtc or not), in
AudioMediaStreamTrackRendererCocoa::setRegisteredDataSource.
We remove the other call sites.
This is a no-op outside of iOS since
AudioMediaStreamTrackRendererUnit::setLastDeviceUsed is a no-op outside of iOS.
Manually tested.
*
Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::setRegisteredDataSource):
*
Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
(WebCore::AudioMediaStreamTrackRendererUnit::getDeviceUnit):
*
Source/WebCore/platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.cpp:
(WebCore::IncomingAudioMediaStreamTrackRendererUnit::addSource):
Canonical link: https://commits.webkit.org/318149@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications