tcpclientsrc: return FLUSHING when select() is canceled
authorTim-Philipp Müller <tim@centricular.com>
Fri, 13 Jun 2014 09:04:47 +0000 (10:04 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 13 Jun 2014 09:04:47 +0000 (10:04 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=731567

gst/tcp/gsttcpclientsrc.c

index d3668b9..633665b 100644 (file)
@@ -276,10 +276,16 @@ done:
 
 select_error:
   {
-    GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
-        ("Select failed: %s", err->message));
+    if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+      GST_DEBUG_OBJECT (src, "Cancelled");
+      ret = GST_FLOW_FLUSHING;
+    } else {
+      GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
+          ("Select failed: %s", err->message));
+      ret = GST_FLOW_ERROR;
+    }
     g_clear_error (&err);
-    return GST_FLOW_ERROR;
+    return ret;
   }
 get_available_error:
   {