mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
Don't keep queue lock in the source locked while ShmMutexLocker is locked for reconfiguring
This can lead to a deadlock.
This commit is contained in:
parent
a23b634323
commit
87303fa05f
1 changed files with 3 additions and 3 deletions
|
@ -1752,13 +1752,13 @@ restart:
|
||||||
// If we don't have a video format configured, configure the device now
|
// If we don't have a video format configured, configure the device now
|
||||||
// and potentially auto-detect the video format
|
// and potentially auto-detect the video format
|
||||||
if (self->video_format == NTV2_FORMAT_UNKNOWN) {
|
if (self->video_format == NTV2_FORMAT_UNKNOWN) {
|
||||||
|
// Don't keep queue locked while configuring as this might take a while
|
||||||
|
g_mutex_unlock(&self->queue_lock);
|
||||||
|
|
||||||
// Make sure to globally lock here as the routing settings and others are
|
// Make sure to globally lock here as the routing settings and others are
|
||||||
// global shared state
|
// global shared state
|
||||||
ShmMutexLocker locker;
|
ShmMutexLocker locker;
|
||||||
|
|
||||||
// Don't keep queue locked while configuring as this might take a while
|
|
||||||
g_mutex_unlock(&self->queue_lock);
|
|
||||||
|
|
||||||
if (!gst_aja_src_configure(self)) {
|
if (!gst_aja_src_configure(self)) {
|
||||||
g_mutex_lock(&self->queue_lock);
|
g_mutex_lock(&self->queue_lock);
|
||||||
GST_ELEMENT_ERROR(self, STREAM, FAILED, (NULL),
|
GST_ELEMENT_ERROR(self, STREAM, FAILED, (NULL),
|
||||||
|
|
Loading…
Reference in a new issue