Title: [287073] trunk/Source/WebKit
- Revision
- 287073
- Author
- you...@apple.com
- Date
- 2021-12-15 08:23:33 -0800 (Wed, 15 Dec 2021)
Log Message
RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit should only reset once
https://bugs.webkit.org/show_bug.cgi?id=234340
Reviewed by Eric Carlson.
As seen in logs, there are cases where the unit is notified reset several times before it gets stopped and restarted.
This triggers resetting on WebProcess side several times which is unneeded.
Instead, we now only call reset once in a start/stop cycle of the audio unit.
Manually tested.
* GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::notifyReset):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (287072 => 287073)
--- trunk/Source/WebKit/ChangeLog 2021-12-15 14:40:41 UTC (rev 287072)
+++ trunk/Source/WebKit/ChangeLog 2021-12-15 16:23:33 UTC (rev 287073)
@@ -1,3 +1,19 @@
+2021-12-15 Youenn Fablet <you...@apple.com>
+
+ RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit should only reset once
+ https://bugs.webkit.org/show_bug.cgi?id=234340
+
+ Reviewed by Eric Carlson.
+
+ As seen in logs, there are cases where the unit is notified reset several times before it gets stopped and restarted.
+ This triggers resetting on WebProcess side several times which is unneeded.
+ Instead, we now only call reset once in a start/stop cycle of the audio unit.
+ Manually tested.
+
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
+ (WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::notifyReset):
+ (WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
+
2021-12-15 Per Arne Vollan <pvol...@apple.com>
[iOS][WP] Add access to required syscall
Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp (287072 => 287073)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp 2021-12-15 14:40:41 UTC (rev 287072)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp 2021-12-15 16:23:33 UTC (rev 287073)
@@ -88,6 +88,7 @@
bool m_isPlaying { false };
WebCore::CAAudioStreamDescription m_description;
bool m_shouldRegisterAsSpeakerSamplesProducer { false };
+ bool m_canReset { true };
};
RemoteAudioMediaStreamTrackRendererInternalUnitManager::RemoteAudioMediaStreamTrackRendererInternalUnitManager(GPUConnectionToWebProcess& gpuConnectionToWebProcess)
@@ -178,6 +179,10 @@
void RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::notifyReset()
{
+ if (!m_canReset)
+ return;
+
+ m_canReset = false;
m_connection->send(Messages::GPUProcessConnection::ResetAudioMediaStreamTrackRendererInternalUnit { m_identifier }, 0);
}
@@ -202,6 +207,7 @@
m_readOffset = 0;
m_generateOffset = 0;
m_isPlaying = true;
+ m_canReset = true;
m_ringBuffer = WebCore::CARingBuffer::adoptStorage(makeUniqueRef<ReadOnlySharedRingBufferStorage>(handle), description, numberOfFrames).moveToUniquePtr();
m_renderSemaphore = WTFMove(semaphore);
m_description = description;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes