Title: [288562] branches/safari-613-branch/Source/WebCore
Revision
288562
Author
[email protected]
Date
2022-01-25 09:48:21 -0800 (Tue, 25 Jan 2022)

Log Message

Cherry-pick r286669. rdar://problem/81618758

    [iOS] Always set audio session preferred input after changing the category
    https://bugs.webkit.org/show_bug.cgi?id=232626
    rdar://81618758

    Reviewed by Youenn Fablet.

    * platform/audio/PlatformMediaSessionManager.cpp:
    (WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule
    a session update so the category and/or preferred input is setup.
    * platform/audio/PlatformMediaSessionManager.h:

    * platform/audio/ios/AudioSessionIOS.h:
    * platform/audio/ios/AudioSessionIOS.mm:
    (WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless
    something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred
    capture device if that has changed.

    * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
    * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
    (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID):
    Remember the device UID if the configuration is successful.
    (WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice):
    Reset the preferred device if necessary.
    (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal):
    Refactored from setPreferredAudioSessionDeviceUID.

    * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
    (WebCore::CoreAudioSharedUnit::captureDeviceChanged):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286669 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-613-branch/Source/WebCore/ChangeLog (288561 => 288562)


--- branches/safari-613-branch/Source/WebCore/ChangeLog	2022-01-25 17:48:16 UTC (rev 288561)
+++ branches/safari-613-branch/Source/WebCore/ChangeLog	2022-01-25 17:48:21 UTC (rev 288562)
@@ -1,5 +1,71 @@
 2022-01-24  Russell Epstein  <[email protected]>
 
+        Cherry-pick r286669. rdar://problem/81618758
+
+    [iOS] Always set audio session preferred input after changing the category
+    https://bugs.webkit.org/show_bug.cgi?id=232626
+    rdar://81618758
+    
+    Reviewed by Youenn Fablet.
+    
+    * platform/audio/PlatformMediaSessionManager.cpp:
+    (WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule
+    a session update so the category and/or preferred input is setup.
+    * platform/audio/PlatformMediaSessionManager.h:
+    
+    * platform/audio/ios/AudioSessionIOS.h:
+    * platform/audio/ios/AudioSessionIOS.mm:
+    (WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless
+    something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred
+    capture device if that has changed.
+    
+    * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
+    * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
+    (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID):
+    Remember the device UID if the configuration is successful.
+    (WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice):
+    Reset the preferred device if necessary.
+    (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal):
+    Refactored from setPreferredAudioSessionDeviceUID.
+    
+    * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
+    (WebCore::CoreAudioSharedUnit::captureDeviceChanged):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-12-08  Eric Carlson  <[email protected]>
+
+            [iOS] Always set audio session preferred input after changing the category
+            https://bugs.webkit.org/show_bug.cgi?id=232626
+            rdar://81618758
+
+            Reviewed by Youenn Fablet.
+
+            * platform/audio/PlatformMediaSessionManager.cpp:
+            (WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule
+            a session update so the category and/or preferred input is setup.
+            * platform/audio/PlatformMediaSessionManager.h:
+
+            * platform/audio/ios/AudioSessionIOS.h:
+            * platform/audio/ios/AudioSessionIOS.mm:
+            (WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless
+            something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred
+            capture device if that has changed.
+
+            * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
+            * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
+            (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID):
+            Remember the device UID if the configuration is successful.
+            (WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice):
+            Reset the preferred device if necessary.
+            (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal):
+            Refactored from setPreferredAudioSessionDeviceUID.
+
+            * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
+            (WebCore::CoreAudioSharedUnit::captureDeviceChanged):
+
+2022-01-24  Russell Epstein  <[email protected]>
+
         Revert r282746. rdar://problem/87732806
 
 2022-01-24  Alan Coon  <[email protected]>

Modified: branches/safari-613-branch/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm (288561 => 288562)


--- branches/safari-613-branch/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm	2022-01-25 17:48:16 UTC (rev 288561)
+++ branches/safari-613-branch/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm	2022-01-25 17:48:21 UTC (rev 288562)
@@ -244,7 +244,7 @@
         m_lastSetPreferredAudioDeviceUID = emptyString();
 #endif
 
-    AVAudioSession *session = [PAL::getAVAudioSessionClass() sharedInstance];
+    auto *session = [PAL::getAVAudioSessionClass() sharedInstance];
     auto *currentCategory = [session category];
     auto currentOptions = [session categoryOptions];
     auto currentPolicy = [session routeSharingPolicy];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to