Title: [288302] trunk/Source/WebCore
- Revision
- 288302
- Author
- you...@apple.com
- Date
- 2022-01-20 10:06:49 -0800 (Thu, 20 Jan 2022)
Log Message
Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
https://bugs.webkit.org/show_bug.cgi?id=235397
Reviewed by Eric Carlson.
Manually tested.
* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
When using VPIO to render speaker samples, we might have to reconfigure the VPIO unit to take into account the speaker format.
In that case, we might have a speaker sample producer and we should not stop the audio unit if getting samples from the producer at the same time.
To prevent this, we set the producer temporarily, stop the audio unit, then set back the producer.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (288301 => 288302)
--- trunk/Source/WebCore/ChangeLog 2022-01-20 17:55:40 UTC (rev 288301)
+++ trunk/Source/WebCore/ChangeLog 2022-01-20 18:06:49 UTC (rev 288302)
@@ -1,3 +1,17 @@
+2022-01-20 Youenn Fablet <you...@apple.com>
+
+ Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
+ https://bugs.webkit.org/show_bug.cgi?id=235397
+
+ Reviewed by Eric Carlson.
+
+ Manually tested.
+
+ * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
+ When using VPIO to render speaker samples, we might have to reconfigure the VPIO unit to take into account the speaker format.
+ In that case, we might have a speaker sample producer and we should not stop the audio unit if getting samples from the producer at the same time.
+ To prevent this, we set the producer temporarily, stop the audio unit, then set back the producer.
+
2022-01-20 Sihui Liu <sihui_...@apple.com>
Make LocalStorage prewarming async
Modified: trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp (288301 => 288302)
--- trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp 2022-01-20 17:55:40 UTC (rev 288301)
+++ trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp 2022-01-20 18:06:49 UTC (rev 288302)
@@ -446,12 +446,24 @@
OSStatus CoreAudioSharedUnit::reconfigureAudioUnit()
{
+ ASSERT(isMainThread());
OSStatus err;
if (!hasAudioUnit())
return 0;
if (m_ioUnitStarted) {
+ CoreAudioSpeakerSamplesProducer* speakerSamplesProducer;
+ {
+ Locker locker { m_speakerSamplesProducerLock };
+ speakerSamplesProducer = m_speakerSamplesProducer;
+ m_speakerSamplesProducer = nullptr;
+ }
err = PAL::AudioOutputUnitStop(m_ioUnit);
+ {
+ Locker locker { m_speakerSamplesProducerLock };
+ m_speakerSamplesProducer = speakerSamplesProducer;
+ }
+
if (err) {
RELEASE_LOG_ERROR(WebRTC, "CoreAudioSharedUnit::reconfigureAudioUnit(%p) AudioOutputUnitStop failed with error %d (%.4s)", this, (int)err, (char*)&err);
return err;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes