parent
92c8d7efd3
commit
dda2fc4ceb
@ -1,2 +1,3 @@
|
||||
/gnome-network-displays-0.90.1.tar.gz
|
||||
/gnome-network-displays-0.90.2.tar.gz
|
||||
/gnome-network-displays-0.90.3.tar.gz
|
||||
|
@ -1,57 +0,0 @@
|
||||
From 6afa893c7f58ad3a511791ae1f55bca5584c3196 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Fri, 20 Dec 2019 15:00:05 +0100
|
||||
Subject: [PATCH] wfd: Always touch session for incoming packets
|
||||
|
||||
It turns out that some adapters (specifically MS v2 adapters) do not
|
||||
reply with the session ID for the keep-alive packet. In this case the
|
||||
gstreamer RTSP server will not automatically touch the GstRTSPSession
|
||||
and we will run into the session timeout.
|
||||
|
||||
Fix this by simply touching all session for the client, for any received
|
||||
response.
|
||||
|
||||
See: #20
|
||||
---
|
||||
src/wfd/wfd-client.c | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/src/wfd/wfd-client.c b/src/wfd/wfd-client.c
|
||||
index 38b385e..258d1d0 100644
|
||||
--- a/src/wfd/wfd-client.c
|
||||
+++ b/src/wfd/wfd-client.c
|
||||
@@ -275,11 +275,31 @@ wfd_client_idle_set_params (gpointer user_data)
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
+GstRTSPFilterResult
|
||||
+wfd_client_touch_session_filter_func (GstRTSPClient *client,
|
||||
+ GstRTSPSession *sess,
|
||||
+ gpointer user_data)
|
||||
+{
|
||||
+ gst_rtsp_session_touch (sess);
|
||||
+
|
||||
+ return GST_RTSP_FILTER_KEEP;
|
||||
+}
|
||||
+
|
||||
void
|
||||
wfd_client_handle_response (GstRTSPClient * client, GstRTSPContext *ctx)
|
||||
{
|
||||
WfdClient *self = WFD_CLIENT (client);
|
||||
|
||||
+ /* Some sinks do not reply with the correct session-id. Which causes
|
||||
+ * gst-rtsp-server to not touch the session, triggering a timeout
|
||||
+ * even though the sink actually replied.
|
||||
+ *
|
||||
+ * Work around this by explicitly touching the session (again). And
|
||||
+ * to do that, just touch all of them, which is acceptable as we will
|
||||
+ * only have one.
|
||||
+ */
|
||||
+ gst_rtsp_client_session_filter (client, wfd_client_touch_session_filter_func, NULL);
|
||||
+
|
||||
/* Track the initialization process and possibly trigger the
|
||||
* next state of the connection establishment. */
|
||||
switch (self->init_state)
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1 +1 @@
|
||||
SHA512 (gnome-network-displays-0.90.2.tar.gz) = b1a52a86678be9f6a8849b6524f6c89f983734a3984f30797f98b47353eee63fa94f28d8cd41e8a8ed17727e9084b4185688789e3cee25727182c7dfaa6a32c7
|
||||
SHA512 (gnome-network-displays-0.90.3.tar.gz) = bc25a51b8e93ca8f3c7d4c99db8a17b8ede0e9d312027b2423ad8fd9642355ebe1c48c5bd0a3dc1c4ba3dc98b3216ba4ff5dfbeff3ebad8849b1428b1584ca76
|
||||
|
Loading…
Reference in new issue