rtpsession: Don't notify about stats property changes while taking the session lock

The signal handlers might want to actually get the value of the stats
property, which would take the session lock again and deadlock.

This was introduced by 2e960e7075.

https://bugzilla.gnome.org/show_bug.cgi?id=766025
This commit is contained in:
Sebastian Dröge 2016-05-11 09:28:13 +03:00
parent 00f23053b1
commit 204a86af97

View file

@ -4029,9 +4029,6 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time,
/* update point-to-point status */ /* update point-to-point status */
session_update_ptp (sess); session_update_ptp (sess);
/* notify about updated statistics */
g_object_notify (G_OBJECT (sess), "stats");
/* see if we need to generate SR or RR packets */ /* see if we need to generate SR or RR packets */
if (!is_rtcp_time (sess, current_time, &data)) if (!is_rtcp_time (sess, current_time, &data))
goto done; goto done;
@ -4071,6 +4068,9 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time,
done: done:
RTP_SESSION_UNLOCK (sess); RTP_SESSION_UNLOCK (sess);
/* notify about updated statistics */
g_object_notify (G_OBJECT (sess), "stats");
/* push out the RTCP packets */ /* push out the RTCP packets */
while ((output = g_queue_pop_head (&data.output))) { while ((output = g_queue_pop_head (&data.output))) {
gboolean do_not_suppress, empty_buffer; gboolean do_not_suppress, empty_buffer;