From f86aee2eed4f1ed8d833e1e3f30a51dfbc65028f Mon Sep 17 00:00:00 2001
From: Thibault Saunier <tsaunier@igalia.com>
Date: Mon, 25 May 2020 20:11:31 -0400
Subject: [PATCH] rtspsrc: Error out when failling to receive message response

And let it rety twice.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/717
---
 gst/rtsp/gstrtspsrc.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index f97f0a9853..a2d258fc98 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -6476,6 +6476,10 @@ again:
         goto again;
     }
   }
+
+  if (res < 0)
+    goto receive_error;
+
   gst_rtsp_ext_list_after_send (src->extensions, request, response);
 
   return res;
@@ -6493,6 +6497,20 @@ send_error:
     g_free (str);
     return res;
   }
+
+receive_error:
+  {
+    gchar *str = gst_rtsp_strresult (res);
+
+    if (res != GST_RTSP_EINTR) {
+      GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
+          ("Could not receive message. (%s)", str));
+    } else {
+      GST_WARNING_OBJECT (src, "receive interrupted");
+    }
+    g_free (str);
+    return res;
+  }
 }
 
 /**
-- 
GitLab