summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2014-10-07 16:29:36 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.com>2014-10-07 16:29:36 -0400
commit5128b46b1f981668eb9fdfd436ce900abba506fb (patch)
tree8047e042c012e6a1a11c2af474d02436595efc71 /gst
parentb79bb94f11fecbff4a1cff4f1952610c8da2da05 (diff)
downloadfarstream-5128b46b1f981668eb9fdfd436ce900abba506fb.tar.gz
rtpsession: Don't try to start sending before a transmitter is set
No stream is really sending before a transmitter is set.
Diffstat (limited to 'gst')
-rw-r--r--gst/fsrtpconference/fs-rtp-session.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/gst/fsrtpconference/fs-rtp-session.c b/gst/fsrtpconference/fs-rtp-session.c
index b58fae65..8a20180f 100644
--- a/gst/fsrtpconference/fs-rtp-session.c
+++ b/gst/fsrtpconference/fs-rtp-session.c
@@ -1966,7 +1966,8 @@ _stream_sending_changed_locked (FsRtpStream *stream, gboolean sending,
if (fs_rtp_session_has_disposed_enter (session, NULL))
return;
- if (session->priv->streams_sending && session->priv->send_codecbin)
+ if (session->priv->streams_sending && session->priv->send_codecbin &&
+ g_hash_table_size (session->priv->transmitters))
g_object_set (session->priv->media_sink_valve, "drop", FALSE, NULL);
else
g_object_set (session->priv->media_sink_valve, "drop", TRUE, NULL);
@@ -2076,13 +2077,6 @@ fs_rtp_session_new_stream (FsSession *session,
if (new_stream)
{
FS_RTP_SESSION_LOCK (self);
- if (direction & FS_DIRECTION_SEND)
- {
- self->priv->streams_sending++;
- if (self->priv->send_codecbin)
- g_object_set (self->priv->media_sink_valve, "drop", FALSE, NULL);
- }
-
self->priv->streams = g_list_append (self->priv->streams, new_stream);
self->priv->streams_cookie++;
FS_RTP_SESSION_UNLOCK (self);
@@ -4072,7 +4066,8 @@ fs_rtp_session_add_send_codec_bin_unlock (FsRtpSession *session,
/* Re-set it here in case in changed while we were unlocked */
codecbin_set_bitrate (codecbin, session->priv->send_bitrate);
- if (session->priv->streams_sending)
+ if (session->priv->streams_sending &&
+ g_hash_table_size (session->priv->transmitters))
g_object_set (session->priv->media_sink_valve, "drop", FALSE, NULL);
while (data.other_codecs)