Skip to content

Commit bf2bd03

Browse files
authored
[GStreamer] fix assert isMainThread (#1317)
Co-authored-by: Théo Maillart <tmaillart@freebox.fr>
1 parent 6ac4f1e commit bf2bd03

1 file changed

Lines changed: 22 additions & 6 deletions

File tree

Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -286,27 +286,43 @@ void TrackPrivateBaseGStreamer::installUpdateConfigurationHandlers()
286286
{
287287
if (m_pad) {
288288
g_signal_connect_swapped(m_pad.get(), "notify::caps", G_CALLBACK(+[](TrackPrivateBaseGStreamer* track) {
289-
track->m_taskQueue.enqueueTask([track]() {
289+
if (isMainThread()) {
290290
if (!track->m_pad)
291291
return;
292292
auto caps = adoptGRef(gst_pad_get_current_caps(track->m_pad.get()));
293293
if (!caps)
294294
return;
295295
track->updateConfigurationFromCaps();
296-
});
296+
} else
297+
track->m_taskQueue.enqueueTask([track]() {
298+
if (!track->m_pad)
299+
return;
300+
auto caps = adoptGRef(gst_pad_get_current_caps(track->m_pad.get()));
301+
if (!caps)
302+
return;
303+
track->updateConfigurationFromCaps();
304+
});
297305
}), this);
298306
g_signal_connect_swapped(m_pad.get(), "notify::tags", G_CALLBACK(+[](TrackPrivateBaseGStreamer* track) {
299-
track->m_taskQueue.enqueueTask([track]() {
307+
if (isMainThread()) {
300308
if (!track->m_pad)
301309
return;
302310
track->updateConfigurationFromTags();
303-
});
311+
} else
312+
track->m_taskQueue.enqueueTask([track]() {
313+
if (!track->m_pad)
314+
return;
315+
track->updateConfigurationFromTags();
316+
});
304317
}), this);
305318
} else if (m_stream) {
306319
g_signal_connect_swapped(m_stream.get(), "notify::caps", G_CALLBACK(+[](TrackPrivateBaseGStreamer* track) {
307-
track->m_taskQueue.enqueueTask([track]() {
320+
if (isMainThread())
308321
track->updateConfigurationFromCaps();
309-
});
322+
else
323+
track->m_taskQueue.enqueueTask([track]() {
324+
track->updateConfigurationFromCaps();
325+
});
310326
}), this);
311327
g_signal_connect_swapped(m_stream.get(), "notify::tags", G_CALLBACK(+[](TrackPrivateBaseGStreamer* track) {
312328
if (isMainThread())

0 commit comments

Comments
 (0)