Changeset 252470 in webkit
- Timestamp:
- Nov 14, 2019 4:34:01 PM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r252467 r252470 1 2019-11-14 Eric Carlson <eric.carlson@apple.com> 2 3 [iOS] Audio capture fails when a track is unmuted 4 https://bugs.webkit.org/show_bug.cgi?id=204202 5 <rdar://problem/57005820> 6 7 Reviewed by Youenn Fablet. 8 9 Tested manually. 10 11 * platform/audio/PlatformMediaSession.cpp: 12 (WebCore::PlatformMediaSession::canProduceAudioChanged): Remove unused "client" parameter. 13 * platform/audio/PlatformMediaSessionManager.cpp: 14 (WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto. 15 * platform/audio/PlatformMediaSessionManager.h: 16 17 * platform/audio/cocoa/MediaSessionManagerCocoa.h: 18 * platform/audio/cocoa/MediaSessionManagerCocoa.mm: 19 (MediaSessionManagerCocoa::sessionCanProduceAudioChanged): Ditto. 20 21 * platform/mediastream/RealtimeMediaSource.cpp: 22 (WebCore::RealtimeMediaSource::setMuted): Change m_muted before calling start/stop so the 23 muted method will return the correct value. 24 25 * platform/mediastream/mac/CoreAudioCaptureSource.cpp: 26 (WebCore::CoreAudioSharedUnit::startInternal): Call sessionCanProduceAudioChanged before 27 starting the audio unit so the audio session category is set correctly. ASSERT if the 28 audio session category is incorrect. 29 30 * platform/mock/MockRealtimeAudioSource.cpp: 31 (WebCore::MockRealtimeAudioSource::startProducingData): Ditto. 32 1 33 2019-11-14 Said Abou-Hallawa <sabouhallawa@apple.com> 2 34 -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp
r248962 r252470 359 359 void PlatformMediaSession::canProduceAudioChanged() 360 360 { 361 PlatformMediaSessionManager::sharedManager().sessionCanProduceAudioChanged( *this);361 PlatformMediaSessionManager::sharedManager().sessionCanProduceAudioChanged(); 362 362 } 363 363 -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
r250694 r252470 408 408 } 409 409 410 void PlatformMediaSessionManager::sessionCanProduceAudioChanged( PlatformMediaSession&)410 void PlatformMediaSessionManager::sessionCanProduceAudioChanged() 411 411 { 412 412 updateSessionState(); -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
r250694 r252470 118 118 virtual void sessionDidEndRemoteScrubbing(const PlatformMediaSession&) { }; 119 119 virtual void clientCharacteristicsChanged(PlatformMediaSession&) { } 120 virtual void sessionCanProduceAudioChanged( PlatformMediaSession&);120 virtual void sessionCanProduceAudioChanged(); 121 121 122 122 #if PLATFORM(IOS_FAMILY) -
trunk/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h
r242901 r252470 57 57 void sessionDidEndRemoteScrubbing(const PlatformMediaSession&) override; 58 58 void clientCharacteristicsChanged(PlatformMediaSession&) override; 59 void sessionCanProduceAudioChanged( PlatformMediaSession&) override;59 void sessionCanProduceAudioChanged() override; 60 60 61 61 virtual void providePresentingApplicationPIDIfNecessary() { } -
trunk/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
r245712 r252470 174 174 } 175 175 176 void MediaSessionManagerCocoa::sessionCanProduceAudioChanged( PlatformMediaSession& session)177 { 178 PlatformMediaSessionManager::sessionCanProduceAudioChanged( session);176 void MediaSessionManagerCocoa::sessionCanProduceAudioChanged() 177 { 178 PlatformMediaSessionManager::sessionCanProduceAudioChanged(); 179 179 scheduleUpdateNowPlayingInfo(); 180 180 } -
trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
r247391 r252470 91 91 void RealtimeMediaSource::setMuted(bool muted) 92 92 { 93 if (!muted && interrupted()) { 94 ALWAYS_LOG_IF(m_logger, LOGIDENTIFIER, "ignoring unmute because of interruption"); 95 return; 96 } 97 93 98 ALWAYS_LOG_IF(m_logger, LOGIDENTIFIER, muted); 94 99 100 // Changed m_muted before calling start/stop so muted() will reflect the correct state. 101 notifyMutedChange(muted); 95 102 if (muted) 96 103 stop(); 97 else { 98 if (interrupted()) 99 return; 100 104 else 101 105 start(); 102 }103 104 notifyMutedChange(muted);105 106 } 106 107 -
trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp
r251888 r252470 35 35 #include "CoreAudioCaptureDeviceManager.h" 36 36 #include "Logging.h" 37 #include "PlatformMediaSessionManager.h" 37 38 #include "Timer.h" 38 39 #include "WebAudioSourceProviderAVFObjC.h" … … 666 667 unduck(); 667 668 669 #if PLATFORM(IOS_FAMILY) 670 PlatformMediaSessionManager::sharedManager().sessionCanProduceAudioChanged(); 671 ASSERT(AudioSession::sharedSession().category() == AudioSession::PlayAndRecord); 672 #endif 673 668 674 err = AudioOutputUnitStart(m_ioUnit); 669 675 if (err) { -
trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp
r250918 r252470 33 33 34 34 #if ENABLE(MEDIA_STREAM) 35 #include "AudioSession.h" 35 36 #include "CaptureDevice.h" 36 37 #include "Logging.h" … … 38 39 #include "MockRealtimeMediaSourceCenter.h" 39 40 #include "NotImplemented.h" 41 #include "PlatformMediaSessionManager.h" 40 42 #include "RealtimeMediaSourceSettings.h" 41 43 #include <wtf/UUID.h> … … 134 136 #if PLATFORM(IOS_FAMILY) 135 137 RealtimeMediaSourceCenter::singleton().audioCaptureFactory().setActiveSource(*this); 138 PlatformMediaSessionManager::sharedManager().sessionCanProduceAudioChanged(); 139 ASSERT(AudioSession::sharedSession().category() == AudioSession::PlayAndRecord); 136 140 #endif 137 141
Note: See TracChangeset
for help on using the changeset viewer.