diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2014-10-07 16:29:36 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2014-10-07 16:29:36 -0400 |
commit | 5128b46b1f981668eb9fdfd436ce900abba506fb (patch) | |
tree | 8047e042c012e6a1a11c2af474d02436595efc71 /gst | |
parent | b79bb94f11fecbff4a1cff4f1952610c8da2da05 (diff) | |
download | farstream-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.c | 13 |
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) |