rpms/gstreamer-plugins-base/devel gstpb-pulse-hang-bz556986.patch, NONE, 1.1 gstreamer-plugins-base.spec, 1.67, 1.68

Bastien Nocera hadess at fedoraproject.org
Tue Jan 13 18:38:01 UTC 2009


Author: hadess

Update of /cvs/pkgs/rpms/gstreamer-plugins-base/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29406

Modified Files:
	gstreamer-plugins-base.spec 
Added Files:
	gstpb-pulse-hang-bz556986.patch 
Log Message:
* Tue Jan 13 2009 - Bastien Nocera <bnocera at redhat.com> - 0.10.2-4
- Avoid deadlocks when PulseAudio disappears


gstpb-pulse-hang-bz556986.patch:

--- NEW FILE gstpb-pulse-hang-bz556986.patch ---
--- gst-libs/gst/audio/gstbaseaudiosink.c	2008/12/20 12:45:03	1.113
+++ gst-libs/gst/audio/gstbaseaudiosink.c	2009/01/05 17:13:13	1.114
@@ -1710,18 +1710,6 @@
 }
 
 static GstStateChangeReturn
-gst_base_audio_sink_do_play (GstBaseAudioSink * sink)
-{
-  GstStateChangeReturn ret;
-
-  GST_OBJECT_LOCK (sink);
-  ret = gst_base_audio_sink_async_play (GST_BASE_SINK_CAST (sink));
-  GST_OBJECT_UNLOCK (sink);
-
-  return ret;
-}
-
-static GstStateChangeReturn
 gst_base_audio_sink_change_state (GstElement * element,
     GstStateChange transition)
 {
@@ -1745,15 +1733,23 @@
       gst_ring_buffer_may_start (sink->ringbuffer, FALSE);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      gst_base_audio_sink_do_play (sink);
+      GST_OBJECT_LOCK (sink);
+      GST_DEBUG_OBJECT (sink, "ringbuffer may start now");
+      sink->priv->sync_latency = TRUE;
+      GST_OBJECT_UNLOCK (sink);
+
+      gst_ring_buffer_may_start (sink->ringbuffer, TRUE);
+      if (GST_BASE_SINK_CAST (sink)->pad_mode == GST_ACTIVATE_PULL) {
+        /* we always start the ringbuffer in pull mode immediatly */
+        gst_ring_buffer_start (sink->ringbuffer);
+      }
       break;
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
-      /* need to take the lock so we don't interfere with an
-       * async play */
-      GST_OBJECT_LOCK (sink);
       /* ringbuffer cannot start anymore */
       gst_ring_buffer_may_start (sink->ringbuffer, FALSE);
       gst_ring_buffer_pause (sink->ringbuffer);
+
+      GST_OBJECT_LOCK (sink);
       sink->priv->sync_latency = FALSE;
       GST_OBJECT_UNLOCK (sink);
       break;


Index: gstreamer-plugins-base.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gstreamer-plugins-base/devel/gstreamer-plugins-base.spec,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- gstreamer-plugins-base.spec	1 Jan 2009 18:18:06 -0000	1.67
+++ gstreamer-plugins-base.spec	13 Jan 2009 18:37:30 -0000	1.68
@@ -5,7 +5,7 @@
 
 Name: 		%{gstreamer}-plugins-base
 Version: 	0.10.21
-Release:  	3%{?dist}	
+Release:  	4%{?dist}	
 Summary: 	GStreamer streaming media framework base plug-ins
 
 Group: 		Applications/Multimedia
@@ -15,6 +15,8 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 Patch0:		gstpb-0.10.15-cd-speed.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=556986
+Patch1:		gstpb-pulse-hang-bz556986.patch
 
 Requires:       %{gstreamer} >= %{_gst}
 Requires:	liboil >= 0.3.12-9
@@ -53,6 +55,7 @@
 %prep
 %setup -q -n gst-plugins-base-%{version}
 %patch0 -p1 -b .cd-speed
+%patch1 -p0 -b .pulse-hang
 
 %build
 %configure \
@@ -238,6 +241,9 @@
 %doc %{_datadir}/gtk-doc/html/gst-plugins-base-plugins-%{majorminor}
 
 %changelog
+* Tue Jan 13 2009 - Bastien Nocera <bnocera at redhat.com> - 0.10.2-4
+- Avoid deadlocks when PulseAudio disappears
+
 * Thu Jan 1 2009 - Rex Dieter <rdieter at fedoraproject.org> - 0.10.2-3
 - rebuild for pkgconfig deps (#478577)
 




More information about the fedora-extras-commits mailing list