Skip to content

Commit 4fe2341

Browse files
emutavchieocanha
authored andcommitted
[GStreamer][MSE] Fix hang on clearing/destroying AppendPipeline
The deadlock may occur when UI thread tries to clear pipeline in AppendPipeline::clearPlayerPrivate() while parser thread tries to change pipeline state to pause holding the stream lock in AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread()
1 parent b59cd1d commit 4fe2341

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,6 +1062,9 @@ void AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread(GstPad* demuxerS
10621062
GST_TRACE("demuxer-connect-to-appsink message posted to bus");
10631063

10641064
m_padAddRemoveCondition.wait(m_padAddRemoveLock);
1065+
1066+
if (!m_playerPrivate)
1067+
return;
10651068
}
10661069

10671070
// Must be done in the thread we were called from (usually streaming thread).

0 commit comments

Comments
 (0)