[arch-commits] Commit in gstreamer0.10/repos (3 files)
Jan de Groot
jgc at archlinux.org
Sun Nov 9 14:54:03 UTC 2008
Date: Sunday, November 9, 2008 @ 09:54:02
Author: jgc
Revision: 18834
Merged revisions 18832 via svnmerge from
svn+ssh://svn.archlinux.org/home/svn-packages/gstreamer0.10/trunk
........
r18832 | jgc | 2008-11-09 15:50:37 +0100 (Sun, 09 Nov 2008) | 2 lines
upgpkg: gstreamer0.10 0.10.21-2
Fix http://bugs.gnome.org/555631
........
Added:
gstreamer0.10/repos/extra-x86_64/bgo555631.patch
(from rev 18832, gstreamer0.10/trunk/bgo555631.patch)
Modified:
gstreamer0.10/repos/extra-x86_64/ (properties)
gstreamer0.10/repos/extra-x86_64/PKGBUILD
-----------------+
PKGBUILD | 9 +++--
bgo555631.patch | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 94 insertions(+), 3 deletions(-)
Property changes on: gstreamer0.10/repos/extra-x86_64
___________________________________________________________________
Name: svnmerge-integrated
- /gstreamer0.10/trunk:1-15120
+ /gstreamer0.10/trunk:1-18833
Modified: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD 2008-11-09 14:51:01 UTC (rev 18833)
+++ extra-x86_64/PKGBUILD 2008-11-09 14:54:02 UTC (rev 18834)
@@ -3,7 +3,7 @@
pkgname=gstreamer0.10
pkgver=0.10.21
-pkgrel=1
+pkgrel=2
pkgdesc="GStreamer Multimedia Framework"
arch=(i686 x86_64)
license=('LGPL')
@@ -11,11 +11,14 @@
depends=('libxml2>=2.6.32' 'glib2>=2.18.1')
makedepends=('perlxml' 'pkgconfig' 'gtk-doc')
options=('!libtool')
-source=(${url}/src/gstreamer/gstreamer-${pkgver}.tar.bz2)
-md5sums=('7bad90af3fd81a1535363cf85359125c')
+source=(${url}/src/gstreamer/gstreamer-${pkgver}.tar.bz2
+ bgo555631.patch)
+md5sums=('7bad90af3fd81a1535363cf85359125c'
+ '71eb301845184638e6556dacd1ca7d55')
build() {
cd "${srcdir}/gstreamer-${pkgver}"
+ patch -Np0 -i "${srcdir}/bgo555631.patch" || return 1
./configure --prefix=/usr \
--sysconfdir=/etc --localstatedir=/var \
--disable-docs-build || return 1
Copied: gstreamer0.10/repos/extra-x86_64/bgo555631.patch (from rev 18832, gstreamer0.10/trunk/bgo555631.patch)
===================================================================
--- extra-x86_64/bgo555631.patch (rev 0)
+++ extra-x86_64/bgo555631.patch 2008-11-09 14:54:02 UTC (rev 18834)
@@ -0,0 +1,88 @@
+--- 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);
+ }
More information about the arch-commits
mailing list