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

Reply via email to