diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index 0acac153ae..9bee269ff4 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -2699,6 +2699,9 @@ rtp_session_update_send_caps (RTPSession * sess, GstCaps * caps) if (source) { rtp_source_update_caps (source, caps); g_object_unref (source); + + if (created) + on_new_ssrc (sess, source); } if (gst_structure_get_uint (s, "rtx-ssrc", &ssrc)) { @@ -2749,6 +2752,9 @@ rtp_session_send_rtp (RTPSession * sess, gpointer data, gboolean is_list, source = obtain_internal_source (sess, pinfo.ssrc, &created, current_time); + if (created) + on_new_ssrc (sess, source); + prevsender = RTP_SOURCE_IS_SENDER (source); oldrate = source->bitrate; @@ -3739,6 +3745,9 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time, source = obtain_internal_source (sess, sess->suggested_ssrc, &created, current_time); + + if (created) + on_new_ssrc (sess, source); g_object_unref (source); } @@ -3817,6 +3826,10 @@ done: sess->callbacks.send_rtcp (sess, source, buffer, output->is_bye, sess->send_rtcp_user_data); sess->stats.nacks_sent += data.nacked_seqnums; + + RTP_SESSION_LOCK (sess); + on_ssrc_active (sess, source); + RTP_SESSION_UNLOCK (sess); } else { GST_DEBUG ("freeing packet callback: %p" " do_not_suppress: %d may_suppress: %d",