mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
v4l2videodec: Don't lock the decoder when stopping task
That src pad task may need to take the lock when being pulled down. takeing that lock can lead to a deadlock. https://bugzilla.gnome.org/show_bug.cgi?id=730207
This commit is contained in:
parent
5f10d2b4e2
commit
f384047be3
1 changed files with 4 additions and 1 deletions
|
@ -213,9 +213,10 @@ gst_v4l2_video_dec_stop (GstVideoDecoder * decoder)
|
|||
gst_v4l2_object_unlock (self->v4l2output);
|
||||
gst_v4l2_object_unlock (self->v4l2capture);
|
||||
|
||||
GST_VIDEO_DECODER_STREAM_LOCK (decoder);
|
||||
/* Wait for capture thread to stop */
|
||||
gst_pad_stop_task (decoder->srcpad);
|
||||
|
||||
GST_VIDEO_DECODER_STREAM_LOCK (decoder);
|
||||
self->output_flow = GST_FLOW_OK;
|
||||
GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
|
||||
|
||||
|
@ -273,7 +274,9 @@ gst_v4l2_video_dec_flush (GstVideoDecoder * decoder)
|
|||
GST_DEBUG_OBJECT (self, "Flushing");
|
||||
|
||||
/* Wait for capture thread to stop */
|
||||
GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
|
||||
gst_pad_stop_task (decoder->srcpad);
|
||||
GST_VIDEO_DECODER_STREAM_LOCK (decoder);
|
||||
self->output_flow = GST_FLOW_OK;
|
||||
|
||||
if (self->v4l2output->pool)
|
||||
|
|
Loading…
Reference in a new issue