diff options
Diffstat (limited to 'gst/rtpmanager/gstrtpsession.c')
-rw-r--r-- | gst/rtpmanager/gstrtpsession.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index 3a968a545..49a752196 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -911,7 +911,7 @@ rtcp_thread (GstRtpSession * rtpsession) GST_RTP_SESSION_LOCK (rtpsession); while (rtpsession->priv->wait_send) { - GST_LOG_OBJECT (rtpsession, "waiting for RTP thread"); + GST_LOG_OBJECT (rtpsession, "waiting for getting started"); GST_RTP_SESSION_WAIT (rtpsession); GST_LOG_OBJECT (rtpsession, "signaled..."); } @@ -1721,6 +1721,14 @@ gst_rtp_session_chain_recv_rtp (GstPad * pad, GstObject * parent, GST_LOG_OBJECT (rtpsession, "received RTP packet"); + GST_RTP_SESSION_LOCK (rtpsession); + if (rtpsession->priv->wait_send) { + GST_LOG_OBJECT (rtpsession, "signal RTCP thread"); + rtpsession->priv->wait_send = FALSE; + GST_RTP_SESSION_SIGNAL (rtpsession); + } + GST_RTP_SESSION_UNLOCK (rtpsession); + /* get NTP time when this packet was captured, this depends on the timestamp. */ timestamp = GST_BUFFER_TIMESTAMP (buffer); if (GST_CLOCK_TIME_IS_VALID (timestamp)) { @@ -1790,6 +1798,14 @@ gst_rtp_session_chain_recv_rtcp (GstPad * pad, GstObject * parent, GST_LOG_OBJECT (rtpsession, "received RTCP packet"); + GST_RTP_SESSION_LOCK (rtpsession); + if (rtpsession->priv->wait_send) { + GST_LOG_OBJECT (rtpsession, "signal RTCP thread"); + rtpsession->priv->wait_send = FALSE; + GST_RTP_SESSION_SIGNAL (rtpsession); + } + GST_RTP_SESSION_UNLOCK (rtpsession); + current_time = gst_clock_get_time (priv->sysclock); get_current_times (rtpsession, NULL, &ntpnstime); |