From e7650117afa3fef9b49607570453ba2fc85907f5 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Fri, 14 Feb 2014 17:20:42 +0100 Subject: waylandsink: access sink->pool in a more atomic fashion --- ext/wayland/gstwaylandsink.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'ext/wayland') diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c index 8b2d527ea..a1035b2d0 100644 --- a/ext/wayland/gstwaylandsink.c +++ b/ext/wayland/gstwaylandsink.c @@ -212,7 +212,7 @@ static gboolean gst_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) { GstWaylandSink *sink; - GstBufferPool *newpool, *oldpool; + GstBufferPool *newpool; GstVideoInfo info; GstStructure *structure; static GstAllocationParams params = { 0, 0, 0, 15, }; @@ -252,10 +252,8 @@ gst_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) if (!gst_buffer_pool_set_config (newpool, structure)) goto config_failed; - oldpool = sink->pool; - sink->pool = newpool; - if (oldpool) - gst_object_unref (oldpool); + gst_object_replace ((GstObject **) & sink->pool, (GstObject *) newpool); + gst_object_unref (newpool); return TRUE; @@ -298,7 +296,7 @@ static gboolean gst_wayland_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query) { GstWaylandSink *sink = GST_WAYLAND_SINK (bsink); - GstBufferPool *pool; + GstBufferPool *pool = NULL; GstStructure *config; GstCaps *caps; guint size; @@ -309,8 +307,8 @@ gst_wayland_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query) if (caps == NULL) goto no_caps; - if ((pool = sink->pool)) - gst_object_ref (pool); + if (sink->pool) + pool = gst_object_ref (sink->pool); if (pool != NULL) { GstCaps *pcaps; -- cgit v1.2.1