gst/rtpmanager/rtpsession.c: Unlock the session lock when calling one of our callbacks.
Original commit message from CVS: Patch by: Olivier Crete <tester at tester dot ca> * gst/rtpmanager/rtpsession.c: (source_clock_rate), (rtp_session_process_bye), (rtp_session_send_bye_locked): Unlock the session lock when calling one of our callbacks. Fixes #532011.
This commit is contained in:
parent
c466ae6bdc
commit
bddddbd409
@ -844,6 +844,8 @@ source_clock_rate (RTPSource * source, guint8 pt, RTPSession * session)
|
|||||||
{
|
{
|
||||||
gint result;
|
gint result;
|
||||||
|
|
||||||
|
RTP_SESSION_UNLOCK (session);
|
||||||
|
|
||||||
if (session->callbacks.clock_rate)
|
if (session->callbacks.clock_rate)
|
||||||
result =
|
result =
|
||||||
session->callbacks.clock_rate (session, pt,
|
session->callbacks.clock_rate (session, pt,
|
||||||
@ -851,6 +853,8 @@ source_clock_rate (RTPSource * source, guint8 pt, RTPSession * session)
|
|||||||
else
|
else
|
||||||
result = -1;
|
result = -1;
|
||||||
|
|
||||||
|
RTP_SESSION_LOCK (session);
|
||||||
|
|
||||||
GST_DEBUG ("got clock-rate %d for pt %d", result, pt);
|
GST_DEBUG ("got clock-rate %d for pt %d", result, pt);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -1608,9 +1612,11 @@ rtp_session_process_bye (RTPSession * sess, GstRTCPPacket * packet,
|
|||||||
|
|
||||||
sess->next_rtcp_check_time += arrival->time;
|
sess->next_rtcp_check_time += arrival->time;
|
||||||
|
|
||||||
|
RTP_SESSION_UNLOCK (sess);
|
||||||
/* notify app of reconsideration */
|
/* notify app of reconsideration */
|
||||||
if (sess->callbacks.reconsider)
|
if (sess->callbacks.reconsider)
|
||||||
sess->callbacks.reconsider (sess, sess->reconsider_user_data);
|
sess->callbacks.reconsider (sess, sess->reconsider_user_data);
|
||||||
|
RTP_SESSION_LOCK (sess);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1866,9 +1872,11 @@ rtp_session_send_bye_locked (RTPSession * sess, const gchar * reason)
|
|||||||
GST_DEBUG ("Schedule BYE for %" GST_TIME_FORMAT ", %" GST_TIME_FORMAT,
|
GST_DEBUG ("Schedule BYE for %" GST_TIME_FORMAT ", %" GST_TIME_FORMAT,
|
||||||
GST_TIME_ARGS (interval), GST_TIME_ARGS (sess->next_rtcp_check_time));
|
GST_TIME_ARGS (interval), GST_TIME_ARGS (sess->next_rtcp_check_time));
|
||||||
|
|
||||||
|
RTP_SESSION_UNLOCK (sess);
|
||||||
/* notify app of reconsideration */
|
/* notify app of reconsideration */
|
||||||
if (sess->callbacks.reconsider)
|
if (sess->callbacks.reconsider)
|
||||||
sess->callbacks.reconsider (sess, sess->reconsider_user_data);
|
sess->callbacks.reconsider (sess, sess->reconsider_user_data);
|
||||||
|
RTP_SESSION_LOCK (sess);
|
||||||
done:
|
done:
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user