slomo gst-plugins-good: gst-plugins-good/ gst-plugins-good/ext/pulse/

[email protected] Mon, 5 Jan 2009 09:31:28 -0800 (PST)
Newsgroups gmane.comp.video.gstreamer.cvs
Message-ID <[email protected]>
--===============4441784046221446376==

CVS Root:       /cvs/gstreamer
Module:         gst-plugins-good
Changes by:     slomo
Date:           Mon Jan 05 2009  17:31:27 UTC

Log message:
* ext/pulse/pulsesink.c: (gst_pulsesink_destroy_stream):
Don't wait for the pulse mainloop when destroying the stream.
Fixes a deadlock when the pulsedaemon goes away while pulsesink
is PLAYING. Fixes bug #556986.

Modified files:
    .               : ChangeLog
    ext/pulse       : pulsesink.c

Links:
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ChangeLog.diff?r1=1.3882&r2=1.3883
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ext/pulse/pulsesink.c.diff?r1=1.11&r2=1.12

====Begin Diffs====
Index: ChangeLog
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-good/ChangeLog,v
retrieving revision 1.3882
retrieving revision 1.3883
diff -u -d -r1.3882 -r1.3883
--- ChangeLog	5 Jan 2009 12:30:37 -0000	1.3882
+++ ChangeLog	5 Jan 2009 17:31:12 -0000	1.3883
@@ -1,5 +1,12 @@
 2009-01-05  Sebastian Dröge  <[email protected]>
 
+	* ext/pulse/pulsesink.c: (gst_pulsesink_destroy_stream):
+	Don't wait for the pulse mainloop when destroying the stream.
+	Fixes a deadlock when the pulsedaemon goes away while pulsesink
+	is PLAYING. Fixes bug #556986.
+
+2009-01-05  Sebastian Dröge  <[email protected]>
 	Patch by: Sascha Hauer <s dot hauer at pengutronix dot de>
 	          Luotao Fu <l dot fu at pengutronix dot de>
Index: pulsesink.c
RCS file: /cvs/gstreamer/gst-plugins-good/ext/pulse/pulsesink.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- pulsesink.c	23 Nov 2008 15:08:45 -0000	1.11
+++ pulsesink.c	5 Jan 2009 17:31:13 -0000	1.12
@@ -279,7 +279,6 @@
 {
   if (pulsesink->stream) {
     pa_stream_disconnect (pulsesink->stream);
-    pa_threaded_mainloop_wait (pulsesink->mainloop);
     pa_stream_unref (pulsesink->stream);
     pulsesink->stream = NULL;
   }
@@ -588,16 +587,14 @@
   if (!pulsesink->context
       || pa_context_get_state (pulsesink->context) != PA_CONTEXT_READY) {
     GST_ELEMENT_ERROR (pulsesink, RESOURCE, FAILED, ("Bad context state: %s",
-            pulsesink->
-            context ? pa_strerror (pa_context_errno (pulsesink->context)) :
-            NULL), (NULL));
+            pulsesink->context ? pa_strerror (pa_context_errno (pulsesink->
+                    context)) : NULL), (NULL));
     goto unlock_and_fail;
   if (!(pulsesink->stream = pa_stream_new (pulsesink->context,
-              pulsesink->
-              stream_name ? pulsesink->stream_name : "Playback Stream",
-              &pulsesink->sample_spec,
+              pulsesink->stream_name ? pulsesink->
+              stream_name : "Playback Stream", &pulsesink->sample_spec,
               gst_pulse_gst_to_channel_map (&channel_map, spec)))) {
     GST_ELEMENT_ERROR (pulsesink, RESOURCE, FAILED,
         ("Failed to create stream: %s",


--===============4441784046221446376==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

--===============4441784046221446376==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gstreamer-cvs-verbose mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs-verbose

--===============4441784046221446376==--