From 30d2f970f9adfaa1f357051d0ab70bc5ff08a64f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 10 Nov 2011 15:17:41 +0100 Subject: [PATCH] omxvideodec: Make srcpad caps setting threadsafe --- omx/gstomxvideodec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c index 3d25cad..486eeba 100644 --- a/omx/gstomxvideodec.c +++ b/omx/gstomxvideodec.c @@ -645,6 +645,7 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self) GST_DEBUG_OBJECT (self, "Port settings have changed, updating caps"); + GST_BASE_VIDEO_CODEC_STREAM_LOCK (self); gst_omx_port_get_port_definition (port, &port_def); g_assert (port_def.format.video.eCompressionFormat == OMX_VIDEO_CodingUnused); @@ -661,6 +662,7 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self) port_def.format.video.eColorFormat); if (buf) gst_omx_port_release_buffer (self->out_port, buf); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (self); goto caps_failed; break; } @@ -673,9 +675,12 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self) if (!gst_base_video_decoder_set_src_caps (GST_BASE_VIDEO_DECODER (self))) { if (buf) gst_omx_port_release_buffer (self->out_port, buf); + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (self); goto caps_failed; } + GST_BASE_VIDEO_CODEC_STREAM_UNLOCK (self); + /* Now get a buffer */ if (acq_return != GST_OMX_ACQUIRE_BUFFER_OK) return; -- 2.7.4