srtobject: continue polling or report error on failed receive
authorPeter Workman <peter@onsetcommunication.com>
Tue, 2 Jun 2020 21:29:16 +0000 (18:29 -0300)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 3 Jun 2020 09:31:42 +0000 (09:31 +0000)
fixes #1277

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1260>

ext/srt/gstsrtobject.c

index c8cc421..1db634c 100644 (file)
@@ -1264,6 +1264,17 @@ gst_srt_object_read (GstSRTObject * srtobject,
 
 
     len = srt_recvmsg (rsock, (char *) (data), size);
+
+    if (len == SRT_ERROR) {
+      gint srt_errno = srt_getlasterror (NULL);
+      if (srt_errno == SRT_EASYNCRCV) {
+        continue;
+      } else {
+        g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_READ,
+            "Failed to receive from SRT socket: %s", srt_getlasterror_str ());
+        return -1;
+      }
+    }
     break;
   }