rtspsrc: flush connection when stopping
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 6 Feb 2013 12:18:18 +0000 (13:18 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 6 Feb 2013 12:18:18 +0000 (13:18 +0100)
When we stop, we can flush all pending commands so that we can stop and
join the task.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684924

gst/rtsp/gstrtspsrc.c

index 22905e829b1bc434a54edd4bbb6f92fab319273c..c9a5fb6bcfe9d0ec49280e4e0c1cb5fb92513812 100644 (file)
@@ -285,6 +285,9 @@ static gboolean gst_rtspsrc_push_event (GstRTSPSrc * src, GstEvent * event);
 #define CMD_RECONNECT  (1 << 5)
 #define CMD_LOOP       (1 << 6)
 
+/* mask for all commands */
+#define CMD_ALL         ((CMD_LOOP << 1) - 1)
+
 #define GST_ELEMENT_PROGRESS(el, type, code, text)      \
 G_STMT_START {                                          \
   gchar *__txt = _gst_element_error_printf text;        \
@@ -6699,7 +6702,7 @@ gst_rtspsrc_stop (GstRTSPSrc * src)
   GST_DEBUG_OBJECT (src, "stopping");
 
   /* also cancels pending task */
-  gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, CMD_CLOSE);
+  gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, CMD_ALL);
 
   GST_OBJECT_LOCK (src);
   if ((task = src->task)) {