diff options
Diffstat (limited to 'abs/extra/community/gstreamer0.10/bgo555631.patch')
-rw-r--r-- | abs/extra/community/gstreamer0.10/bgo555631.patch | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/abs/extra/community/gstreamer0.10/bgo555631.patch b/abs/extra/community/gstreamer0.10/bgo555631.patch deleted file mode 100644 index b9a18f4..0000000 --- a/abs/extra/community/gstreamer0.10/bgo555631.patch +++ /dev/null @@ -1,88 +0,0 @@ ---- libs/gst/base/gstbasetransform.c 2008/10/20 13:29:06 1.126 -+++ libs/gst/base/gstbasetransform.c 2008/10/21 16:30:41 1.127 -@@ -251,7 +251,7 @@ - /* upstream caps and size suggestions */ - GstCaps *sink_suggest; - guint size_suggest; -- gint suggest_pending; -+ gboolean suggest_pending; - - gboolean reconfigure; - }; -@@ -1224,7 +1224,7 @@ - gst_caps_unref (priv->sink_suggest); - priv->sink_suggest = gst_caps_ref (othercaps); - priv->size_suggest = size_suggest; -- g_atomic_int_set (&trans->priv->suggest_pending, 1); -+ trans->priv->suggest_pending = TRUE; - GST_OBJECT_UNLOCK (trans->sinkpad); - } - gst_caps_unref (othercaps); -@@ -1366,7 +1366,7 @@ - GstBaseTransform *trans; - GstBaseTransformPrivate *priv; - GstFlowReturn res; -- gboolean proxy, suggest; -+ gboolean proxy, suggest, same_caps; - GstCaps *sink_suggest; - guint size_suggest; - -@@ -1384,8 +1384,12 @@ - - /* we remember our previous alloc request to quickly see if we can proxy or - * not. We skip this check if we have a pending suggestion. */ -- if (g_atomic_int_get (&priv->suggest_pending) == 0 && caps && -- gst_caps_is_equal (priv->sink_alloc, caps)) { -+ GST_OBJECT_LOCK (pad); -+ same_caps = !priv->suggest_pending && caps && -+ gst_caps_is_equal (priv->sink_alloc, caps); -+ GST_OBJECT_UNLOCK (pad); -+ -+ if (same_caps) { - /* we have seen this before, see below if we need to proxy */ - GST_DEBUG_OBJECT (trans, "have old caps"); - sink_suggest = caps; -@@ -1414,7 +1418,7 @@ - size_suggest = size; - suggest = FALSE; - } -- g_atomic_int_set (&priv->suggest_pending, 0); -+ priv->suggest_pending = FALSE; - GST_OBJECT_UNLOCK (pad); - - /* check if we actually handle this format on the sinkpad */ -@@ -1462,7 +1466,10 @@ - } - } - /* remember the new caps */ -+ GST_OBJECT_LOCK (pad); - gst_caps_replace (&priv->sink_alloc, sink_suggest); -+ GST_OBJECT_UNLOCK (pad); -+ - proxy = priv->proxy_alloc; - GST_DEBUG_OBJECT (trans, "doing default alloc, proxy %d", proxy); - -@@ -1487,11 +1494,13 @@ - if (!gst_caps_is_equal (newcaps, caps)) { - GST_DEBUG_OBJECT (trans, "caps are new"); - /* we have new caps, see if we can proxy downstream */ -- if (gst_pad_peer_accept_caps (trans->sinkpad, newcaps)) { -+ if (gst_pad_peer_accept_caps (pad, newcaps)) { - /* peer accepts the caps, return a buffer in this format */ - GST_DEBUG_OBJECT (trans, "peer accepted new caps"); - /* remember the format */ -+ GST_OBJECT_LOCK (pad); - gst_caps_replace (&priv->sink_alloc, newcaps); -+ GST_OBJECT_UNLOCK (pad); - } else { - GST_DEBUG_OBJECT (trans, "peer did not accept new caps"); - /* peer does not accept the caps, free the buffer we received and -@@ -2306,7 +2315,7 @@ - caps = gst_caps_copy (caps); - trans->priv->sink_suggest = caps; - trans->priv->size_suggest = size; -- g_atomic_int_set (&trans->priv->suggest_pending, 1); -+ trans->priv->suggest_pending = TRUE; - GST_DEBUG_OBJECT (trans, "new suggest %" GST_PTR_FORMAT, caps); - GST_OBJECT_UNLOCK (trans->sinkpad); - } |