diff -Nru gstreamer0.10-0.10.36/debian/changelog gstreamer0.10-0.10.36/debian/changelog --- gstreamer0.10-0.10.36/debian/changelog 2012-02-21 09:34:37.000000000 +0000 +++ gstreamer0.10-0.10.36/debian/changelog 2012-04-12 15:40:52.000000000 +0000 @@ -1,3 +1,14 @@ +gstreamer0.10 (0.10.36-1ubuntu1) precise; urgency=low + + * Revert upstream commit: f56c6e12255b37d75b1eb949e434fa8e3bb33f51 + This fixes cases where starting to play a webcam stream would + make gstreamer (or part of it at least) hang. (LP: #966294) + . + Upstream bug is tracked at: + https://bugzilla.gnome.org/show_bug.cgi?id=673991 + + -- Stéphane Graber Thu, 12 Apr 2012 13:04:26 +0200 + gstreamer0.10 (0.10.36-1) unstable; urgency=low [ Loïc Minier ] diff -Nru gstreamer0.10-0.10.36/debian/control gstreamer0.10-0.10.36/debian/control --- gstreamer0.10-0.10.36/debian/control 2012-02-21 09:32:49.000000000 +0000 +++ gstreamer0.10-0.10.36/debian/control 2012-04-12 11:04:31.000000000 +0000 @@ -1,7 +1,8 @@ Source: gstreamer0.10 Section: libs Priority: optional -Maintainer: Maintainers of GStreamer packages +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Maintainers of GStreamer packages Uploaders: Loïc Minier , Sebastien Bacher , Sebastian Dröge , diff -Nru gstreamer0.10-0.10.36/debian/control.in gstreamer0.10-0.10.36/debian/control.in --- gstreamer0.10-0.10.36/debian/control.in 2012-02-21 09:31:59.000000000 +0000 +++ gstreamer0.10-0.10.36/debian/control.in 2012-04-12 11:04:31.000000000 +0000 @@ -1,7 +1,8 @@ Source: @GST_PKGNAME@ Section: libs Priority: optional -Maintainer: Maintainers of GStreamer packages +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Maintainers of GStreamer packages Uploaders: Loïc Minier , Sebastien Bacher , Sebastian Dröge , diff -Nru gstreamer0.10-0.10.36/debian/patches/hand_revert_f56c6e12255b37d75b1eb949e434fa8e3bb33f51 gstreamer0.10-0.10.36/debian/patches/hand_revert_f56c6e12255b37d75b1eb949e434fa8e3bb33f51 --- gstreamer0.10-0.10.36/debian/patches/hand_revert_f56c6e12255b37d75b1eb949e434fa8e3bb33f51 1970-01-01 00:00:00.000000000 +0000 +++ gstreamer0.10-0.10.36/debian/patches/hand_revert_f56c6e12255b37d75b1eb949e434fa8e3bb33f51 2012-04-12 15:07:49.000000000 +0000 @@ -0,0 +1,86 @@ +Description: Workaround webcam issues + Manually revert upstream commit f56c6e12255b37d75b1eb949e434fa8e3bb33f51 + That's to fix LP: #966294 +Author: Stéphane Graber + +Index: precise/libs/gst/base/gstbasetransform.c +=================================================================== +--- precise.orig/libs/gst/base/gstbasetransform.c 2012-04-12 16:59:32.000000000 +0200 ++++ precise/libs/gst/base/gstbasetransform.c 2012-04-12 17:07:45.389486730 +0200 +@@ -700,7 +700,7 @@ + GstBaseTransform *trans; + GstPad *otherpad; + const GstCaps *templ; +- GstCaps *peercaps, *caps, *temp; ++ GstCaps *caps, *temp; + gboolean samecaps; + int cache_index; + +@@ -710,10 +710,10 @@ + cache_index = (pad == trans->srcpad) ? 0 : 1; + + /* we can do what the peer can */ +- peercaps = gst_pad_peer_get_caps_reffed (otherpad); ++ caps = gst_pad_peer_get_caps_reffed (otherpad); + GST_OBJECT_LOCK (trans); +- samecaps = (peercaps && trans->priv->cached_peer_caps[cache_index] +- && gst_caps_is_strictly_equal (peercaps, ++ samecaps = (caps && trans->priv->cached_peer_caps[cache_index] ++ && gst_caps_is_strictly_equal (caps, + trans->priv->cached_peer_caps[cache_index])); + if (!samecaps) { + if (trans->priv->cached_peer_caps[cache_index]) { +@@ -732,14 +732,15 @@ + } + GST_OBJECT_UNLOCK (trans); + +- if (peercaps) { +- GST_DEBUG_OBJECT (pad, "peer caps %" GST_PTR_FORMAT, peercaps); ++ if (caps) { ++ GST_DEBUG_OBJECT (pad, "peer caps %" GST_PTR_FORMAT, caps); + + /* filtered against our padtemplate on the other side */ + templ = gst_pad_get_pad_template_caps (otherpad); + GST_DEBUG_OBJECT (pad, "our template %" GST_PTR_FORMAT, templ); +- temp = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); ++ temp = gst_caps_intersect (caps, templ); + GST_DEBUG_OBJECT (pad, "intersected %" GST_PTR_FORMAT, temp); ++ gst_caps_unref (caps); + } else { + temp = gst_caps_copy (gst_pad_get_pad_template_caps (otherpad)); + GST_DEBUG_OBJECT (pad, "no peer, using our template caps %" GST_PTR_FORMAT, +@@ -763,24 +764,10 @@ + gst_caps_unref (caps); + caps = temp; + +- if (peercaps) { +- /* Now try if we can put the untransformed downstream caps first */ +- temp = gst_caps_intersect_full (peercaps, caps, GST_CAPS_INTERSECT_FIRST); +- if (!gst_caps_is_empty (temp)) { +- gst_caps_merge (temp, caps); +- caps = temp; +- } else { +- gst_caps_unref (temp); +- } +- } +- + done_update_cache: + GST_DEBUG_OBJECT (trans, "returning %" GST_PTR_FORMAT, caps); + + GST_OBJECT_LOCK (trans); +- if (peercaps) { +- trans->priv->cached_peer_caps[cache_index] = gst_caps_ref (peercaps); +- } + if (caps) { + trans->priv->cached_transformed_caps[cache_index] = gst_caps_ref (caps); + } +@@ -788,9 +775,6 @@ + done: + GST_OBJECT_UNLOCK (trans); + +- if (peercaps) +- gst_caps_unref (peercaps); +- + gst_object_unref (trans); + + return caps; diff -Nru gstreamer0.10-0.10.36/debian/patches/series gstreamer0.10-0.10.36/debian/patches/series --- gstreamer0.10-0.10.36/debian/patches/series 2012-02-21 09:31:59.000000000 +0000 +++ gstreamer0.10-0.10.36/debian/patches/series 2012-04-12 14:59:32.000000000 +0000 @@ -1,3 +1,4 @@ 79_multiarch-backwards-compat.patch 80_ia32-hack.patch 99_ltmain_as-needed.patch +hand_revert_f56c6e12255b37d75b1eb949e434fa8e3bb33f51