diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2015-01-05 21:26:22 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2015-01-05 21:33:47 -0300 |
commit | 04e2a38ae3d8323a880a040fbcff5fd7e8ddda4c (patch) | |
tree | 7edd9f97926f8c3a407ff3b25de1713e0966a664 | |
parent | 42b510fd1b63ba8bb52eaf5817c39e2e2c8a2f1c (diff) |
wrappercamerabinsrc: fix deadlock with pad object lock
The image capture mutex and the pad object lock would cause a race
if the pad query was made right when the image probe was running.
The image probe needs the capture mutex and the querying would need
the pad object lock.
-rw-r--r-- | gst/camerabin2/gstwrappercamerabinsrc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index 892bac328..22e96ae49 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -838,6 +838,7 @@ start_image_capture (GstWrapperCameraBinSrc * self) pad = gst_element_get_static_pad (self->src_vid_src, "src"); if (self->image_renegotiate) { + g_mutex_unlock (&bcamsrc->capturing_mutex); peer = gst_pad_get_peer (pad); gst_object_unref (pad); gst_pad_query (peer, gst_query_new_drain ()); @@ -845,7 +846,6 @@ start_image_capture (GstWrapperCameraBinSrc * self) self->image_renegotiate = FALSE; - g_mutex_unlock (&bcamsrc->capturing_mutex); gst_element_set_state (self->src_vid_src, GST_STATE_READY); /* clean capsfilter caps so they don't interfere here */ |