diff options
author | Olivier Crete <tester@tester.ca> | 2008-05-08 09:43:33 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2008-05-08 09:43:33 +0000 |
commit | f32cbe5017430884f7caf7b90abc805c5b71acaf (patch) | |
tree | bffa75a41e8686bd1f607b5bd9ae0394ade930c9 | |
parent | 08b3343e6b966b0814a9d10ffa1766c7bfb96275 (diff) | |
download | gst-plugins-bad-f32cbe5017430884f7caf7b90abc805c5b71acaf.tar.gz gst-plugins-bad-f32cbe5017430884f7caf7b90abc805c5b71acaf.tar.bz2 gst-plugins-bad-f32cbe5017430884f7caf7b90abc805c5b71acaf.zip |
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.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | gst/rtpmanager/rtpsession.c | 8 |
2 files changed, 17 insertions, 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> Patch by: Sjoerd Simons <sjoerd at luon dot net> diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index 7ddcfe4d..b6ca39cf 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -844,6 +844,8 @@ source_clock_rate (RTPSource * source, guint8 pt, RTPSession * session) { gint result; + RTP_SESSION_UNLOCK (session); + if (session->callbacks.clock_rate) result = session->callbacks.clock_rate (session, pt, @@ -851,6 +853,8 @@ source_clock_rate (RTPSource * source, guint8 pt, RTPSession * session) else result = -1; + RTP_SESSION_LOCK (session); + GST_DEBUG ("got clock-rate %d for pt %d", result, pt); return result; @@ -1608,9 +1612,11 @@ 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); } } @@ -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_TIME_ARGS (interval), GST_TIME_ARGS (sess->next_rtcp_check_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); done: return result; |