mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-21 09:53:47 +00:00
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
08b3343e6b
commit
f32cbe5017
2 changed files with 17 additions and 0 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2008-05-08 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
2008-05-08 Sebastian Dröge <slomo@circular-chaos.org>
|
2008-05-08 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
Patch by: Sjoerd Simons <sjoerd at luon dot net>
|
Patch by: Sjoerd Simons <sjoerd at luon dot net>
|
||||||
|
|
|
@ -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…
Reference in a new issue