mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
rtpbin: only reconsider once for BYE
When iterating the sources of a BYE packet, don't signal a reconsideration for each of them but signal after we handled all sources.
This commit is contained in:
parent
a20d86f1f5
commit
7bd35cb8c7
1 changed files with 11 additions and 5 deletions
|
@ -1711,6 +1711,7 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
|
|||
{
|
||||
guint count, i;
|
||||
gchar *reason;
|
||||
gboolean reconsider = FALSE;
|
||||
|
||||
reason = gst_rtcp_packet_bye_get_reason (packet);
|
||||
GST_DEBUG ("got BYE packet (reason: %s)", GST_STR_NULL (reason));
|
||||
|
@ -1769,11 +1770,9 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
|
|||
|
||||
sess->next_rtcp_check_time += arrival->time;
|
||||
|
||||
RTP_SESSION_UNLOCK (sess);
|
||||
/* notify app of reconsideration */
|
||||
if (sess->callbacks.reconsider)
|
||||
sess->callbacks.reconsider (sess, sess->reconsider_user_data);
|
||||
RTP_SESSION_LOCK (sess);
|
||||
/* mark pending reconsider. We only want to signal the reconsideration
|
||||
* once after we handled all the source in the bye packet */
|
||||
reconsider = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1784,6 +1783,13 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
|
|||
|
||||
g_object_unref (source);
|
||||
}
|
||||
if (reconsider) {
|
||||
RTP_SESSION_UNLOCK (sess);
|
||||
/* notify app of reconsideration */
|
||||
if (sess->callbacks.reconsider)
|
||||
sess->callbacks.reconsider (sess, sess->reconsider_user_data);
|
||||
RTP_SESSION_LOCK (sess);
|
||||
}
|
||||
g_free (reason);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue