Skip to content

Commit 5729f3c

Browse files
marcin-mielczarczyk-redvivienne-w
authored andcommitted
[GStreamer] Fix hang in webaudio
https://bugs.webkit.org/show_bug.cgi?id=283357 Reviewed by Philippe Normand. During a PAUSED_TO_READY state change, there is a race condition between webKitWebAudioSrcRenderAndPushFrames setting dispatchDone true, and the state change resetting it to false, so that the renderer thread will block on dispatchCondition. To fix this, the state transition no longer sets dispatchDone to false, which is already done on every renderer thread entry. Original author: Marcin Mielczarczyk <marcin.mielczarczyk@redembedded.com> See: #1426 * Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp: (webKitWebAudioSrcChangeState): Canonical link: https://commits.webkit.org/286797@main
1 parent 5e48365 commit 5729f3c

1 file changed

Lines changed: 0 additions & 1 deletion

File tree

Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,6 @@ static GstStateChangeReturn webKitWebAudioSrcChangeState(GstElement* element, Gs
449449
case GST_STATE_CHANGE_PAUSED_TO_READY:
450450
{
451451
Locker locker { priv->dispatchLock };
452-
priv->dispatchDone = false;
453452
priv->dispatchCondition.notifyAll();
454453
}
455454
gst_buffer_pool_set_flushing(priv->pool.get(), TRUE);

0 commit comments

Comments
 (0)