From: Arun Raghavan Date: Fri, 10 May 2013 06:02:44 +0000 (+0530) Subject: pulsesink: Take a lock on the ringbuffer in acceptcaps X-Git-Tag: 1.19.3~509^2~5716 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=84238d3ea467d0339a6b2e622e0fcac1678945cb;p=platform%2Fupstream%2Fgstreamer.git pulsesink: Take a lock on the ringbuffer in acceptcaps This is needed as a concurrent state change could pull the context or stream out from under our feet. https://bugzilla.gnome.org/show_bug.cgi?id=686459 --- diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index c253832..0c46828 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -2026,6 +2026,7 @@ gst_pulsesink_query_acceptcaps (GstPulseSink * psink, GstCaps * caps) if (pbuf == NULL) goto done; + GST_OBJECT_LOCK (pbuf); pa_threaded_mainloop_lock (mainloop); if (pbuf->context == NULL) @@ -2114,6 +2115,7 @@ out: } pa_threaded_mainloop_unlock (mainloop); + GST_OBJECT_UNLOCK (pbuf); gst_caps_replace (&spec.caps, NULL); gst_object_unref (pbuf);