diff options
author | Göran Jönsson <goranjn@axis.com> | 2015-05-25 16:36:18 +0200 |
---|---|---|
committer | Wim Taymans <wtaymans@redhat.com> | 2015-06-03 15:09:10 +0200 |
commit | 08e0c79cee11daf7872828c9c60e1b78b3f7d256 (patch) | |
tree | eb1dacc3011789917eef0ae3951c90eaccb55b5a | |
parent | 550348738c0e096d5d3406b89e44ad892b19878a (diff) |
rtsp-client: No flush during Teardown.
When calling gst_rtsp_watch_write_data in gstrtspconnection.c and
backlog is empty it can happen that just a part of a message will be
sent and rest is in backlog queue. If then flush during teardown
just a part of message will be sent.This can lead to client miss
teardown response since it expect to get the last part of message.
The flushing during teardown was introduced to fix a deadlock that now
is fixed more generally in handle_request by temporary setting backlog
size to unlimited.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=749845
-rw-r--r-- | gst/rtsp-server/rtsp-client.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/gst/rtsp-server/rtsp-client.c b/gst/rtsp-server/rtsp-client.c index bedc464..c41d019 100644 --- a/gst/rtsp-server/rtsp-client.c +++ b/gst/rtsp-server/rtsp-client.c @@ -839,17 +839,8 @@ handle_teardown_request (GstRTSPClient * client, GstRTSPContext * ctx) g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_TEARDOWN_REQUEST], 0, ctx); - /* make sure we unblock the backlog and don't accept new messages - * on the watch */ - if (priv->watch != NULL) - gst_rtsp_watch_set_flushing (priv->watch, TRUE); - gst_rtsp_session_media_set_state (sessmedia, GST_STATE_NULL); - /* allow messages again so that we can send the reply */ - if (priv->watch != NULL) - gst_rtsp_watch_set_flushing (priv->watch, FALSE); - /* unmanage the media in the session, returns false if all media session * are torn down. */ keep_session = gst_rtsp_session_release_media (session, sessmedia); |