summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorDoug Nazar <nazard@nazar.ca>2021-05-18 16:38:04 -0400
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-05-19 03:21:58 +0000
commit20ca07d174f88494544f83ba072574c66a6d1aae (patch)
tree222fdf27dfdb3f190f0ffa68a4d9f94ae1aa2644 /ext
parent8b8428aec2627c64a21b649da3cfdabbbb6014c9 (diff)
downloadgstreamer-plugins-bad-20ca07d174f88494544f83ba072574c66a6d1aae.tar.gz
dtls: Let sender know when we are flushing
Prevents endless loop during shutdown where we end up sending 0 bytes. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2229>
Diffstat (limited to 'ext')
-rw-r--r--ext/dtls/gstdtlsenc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/dtls/gstdtlsenc.c b/ext/dtls/gstdtlsenc.c
index 09015f1b7..860671c8d 100644
--- a/ext/dtls/gstdtlsenc.c
+++ b/ext/dtls/gstdtlsenc.c
@@ -565,6 +565,9 @@ sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
GST_ELEMENT_ERROR (self, RESOURCE, WRITE, (NULL), ("%s", err->message));
g_clear_error (&err);
break;
+ case GST_FLOW_FLUSHING:
+ GST_INFO_OBJECT (self, "Flushing");
+ break;
default:
g_assert_not_reached ();
break;
@@ -680,6 +683,8 @@ on_send_data (GstDtlsConnection * connection, gconstpointer data, gsize length,
GST_TRACE_OBJECT (self, "send data: releasing lock");
ret = self->src_ret == GST_FLOW_OK;
+ if (self->src_ret == GST_FLOW_FLUSHING)
+ gst_dtls_connection_set_flow_return (connection, self->src_ret);
g_mutex_unlock (&self->queue_lock);
return ret;