Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 130f20449a4b9edfb76e6b51b93aedecb1bb3f0a
      
https://github.com/WebKit/WebKit/commit/130f20449a4b9edfb76e6b51b93aedecb1bb3f0a
  Author: Youenn Fablet <[email protected]>
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
    A 
LayoutTests/fast/mediastream/microphone-interruption-and-audio-session-expected.txt
    A 
LayoutTests/fast/mediastream/microphone-interruption-and-audio-session.html
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.h
    M Source/WebCore/platform/audio/PlatformMediaSession.h
    M Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
    M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp
    M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h

  Log Message:
  -----------
  REGRESSSION (iOS 17 Beta): Outgoing video and incoming audio do not recover 
if iOS User receives PSTN/FaceTime call in the middle of the WebRTC call and 
decline/accepts it from the notification
https://bugs.webkit.org/show_bug.cgi?id=259884
rdar://113534779

Reviewed by Eric Carlson.

When we are interrupted by a phone call, we were sometimes changing the 
AudioSession Category from PlayAndRecord to Media.
In that case, we might try to activate the AudioSession with Media category and 
it will succeed given category is Media.
Capture will still fail as setting the category to PlayAndRecord before 
restarting capture will fail.
In that case, we stay muted but we will not be able to recover properly when 
getting uninterrupted.

To fix this, we are now sticking to PlayAndRecord when a process has microphone 
sources which are muted due to interruption.
When we will try to activate the audio session while being interrupted, 
activation will fail as it is lower priority compared to a phone call,
and we will wait for end of interruption signal.

Covered by added test.

* 
LayoutTests/fast/mediastream/microphone-interruption-and-audio-session-expected.txt:
 Added.
* LayoutTests/fast/mediastream/microphone-interruption-and-audio-session.html: 
Added.
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::wantsToCaptureAudio const):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.h:
* Source/WebCore/platform/audio/PlatformMediaSession.h:
* Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::countActiveAudioCaptureSources):
* Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::interrupted const):
* Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to