Hello community, here is the log from the commit of package gstreamer-0_10 checked in at Mon Nov 3 12:09:11 CET 2008. -------- --- GNOME/gstreamer-0_10/gstreamer-0_10.changes 2008-10-22 02:24:19.000000000 +0200 +++ /mounts/work_src_done/STABLE/gstreamer-0_10/gstreamer-0_10.changes 2008-10-31 21:31:00.000000000 +0100 @@ -1,0 +2,6 @@ +Fri Oct 31 15:27:21 CDT 2008 - gburt@suse.de + +- Add patch from upstream to fix bad GST_CAPS bug in 0.10.21 + + Fixes bnc#439323 and bgo#555631 + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- gstreamer-0_10-protect-caps-bnc439323.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer-0_10-doc.spec ++++++ --- /var/tmp/diff_new_pack.V29521/_old 2008-11-03 12:08:57.000000000 +0100 +++ /var/tmp/diff_new_pack.V29521/_new 2008-11-03 12:08:57.000000000 +0100 @@ -22,7 +22,7 @@ %define build_doc 1 %define _name gstreamer Version: 0.10.21 -Release: 1 +Release: 2 %define gst_branch 0.10 BuildRequires: bison check-devel fdupes flex glib2-devel libxml2-devel pyxml %ifarch %ix86 ppc x86_64 @@ -60,6 +60,9 @@ Source: %{_name}-%{version}.tar.bz2 # PATCH-FIX-OPENSUSE gstreamer-0_10-no-gtk-doc-for-reals.patch maw@novell.com -- to build without gtk-doc, like totally for reals Patch0: gstreamer-0_10-no-gtk-doc-for-reals.patch +# PATCH-FIX-OPENSUSE gstreamer-0_10-protect-caps-bnc439323.patch gburt@novell.com -- fix bad GST_CAPS bug, already fixed upstream +# but recommended for distros to apply to 0.10.21 - see http://bugzilla.gnome.org/show_bug.cgi?id=555631 +Patch1: gstreamer-0_10-protect-caps-bnc439323.patch Url: http://gstreamer.freedesktop.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -263,6 +266,7 @@ %setup -q -n %{_name}-%{version} %if ! %build_doc %patch0 -p1 +%patch1 -p0 %endif %build ++++++ gstreamer-0_10.spec ++++++ --- /var/tmp/diff_new_pack.V29521/_old 2008-11-03 12:08:57.000000000 +0100 +++ /var/tmp/diff_new_pack.V29521/_new 2008-11-03 12:08:57.000000000 +0100 @@ -22,7 +22,7 @@ %define build_doc 0 %define _name gstreamer Version: 0.10.21 -Release: 1 +Release: 2 %define gst_branch 0.10 BuildRequires: bison check-devel fdupes flex glib2-devel libxml2-devel pyxml %ifarch %ix86 ppc x86_64 @@ -60,6 +60,9 @@ Source: %{_name}-%{version}.tar.bz2 # PATCH-FIX-OPENSUSE gstreamer-0_10-no-gtk-doc-for-reals.patch maw@novell.com -- to build without gtk-doc, like totally for reals Patch0: gstreamer-0_10-no-gtk-doc-for-reals.patch +# PATCH-FIX-OPENSUSE gstreamer-0_10-protect-caps-bnc439323.patch gburt@novell.com -- fix bad GST_CAPS bug, already fixed upstream +# but recommended for distros to apply to 0.10.21 - see http://bugzilla.gnome.org/show_bug.cgi?id=555631 +Patch1: gstreamer-0_10-protect-caps-bnc439323.patch Url: http://gstreamer.freedesktop.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -263,6 +266,7 @@ %setup -q -n %{_name}-%{version} %if ! %build_doc %patch0 -p1 +%patch1 -p0 %endif %build @@ -361,6 +365,9 @@ %endif %changelog +* Fri Oct 31 2008 gburt@suse.de +- Add patch from upstream to fix bad GST_CAPS bug in 0.10.21 + + Fixes bnc#439323 and bgo#555631 * Tue Oct 21 2008 maw@suse.de - Update to version 0.10.21: + Basetransform rework ++++++ gstreamer-0_10-protect-caps-bnc439323.patch ++++++ --- 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); } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de