diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2007-04-25 13:19:36 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2007-04-25 13:19:36 +0000 |
commit | 67c69ca0eafde9fc6312cc7aa8c0d560d5f6c53f (patch) | |
tree | 387a9bb651f972ae3be44a273b1aa6092900fbfe /gst/rtpmanager/gstrtpsession.c | |
parent | 34534179a2fe641ee5f9b4b84e523d72527e929d (diff) | |
download | gst-plugins-bad-67c69ca0eafde9fc6312cc7aa8c0d560d5f6c53f.tar.gz gst-plugins-bad-67c69ca0eafde9fc6312cc7aa8c0d560d5f6c53f.tar.bz2 gst-plugins-bad-67c69ca0eafde9fc6312cc7aa8c0d560d5f6c53f.zip |
gst/rtpmanager/gstrtpjitterbuffer.c: Report NO_PREROLL when going to PAUSED.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_change_state):
Report NO_PREROLL when going to PAUSED.
* gst/rtpmanager/gstrtpsession.c: (rtcp_thread):
Don't send RTCP right before we are shutting down.
* gst/rtpmanager/rtpsession.c: (rtp_session_process_rtp),
(rtp_session_process_sr), (session_report_blocks),
(rtp_session_perform_reporting):
Improve report blocks.
* gst/rtpmanager/rtpsource.c: (calculate_jitter), (init_seq),
(rtp_source_process_rtp), (rtp_source_process_sr),
(rtp_source_process_rb), (rtp_source_get_last_sr),
(rtp_source_get_last_rb):
* gst/rtpmanager/rtpsource.h:
* gst/rtpmanager/rtpstats.h:
Cleanups, add methods to access stats.
Diffstat (limited to 'gst/rtpmanager/gstrtpsession.c')
-rw-r--r-- | gst/rtpmanager/gstrtpsession.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index b11dbbba..39c63e32 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -304,21 +304,27 @@ rtcp_thread (GstRTPSession * rtpsession) while (!rtpsession->priv->stop_thread) { gdouble timeout; GstClockTime target; + GstClockReturn res; timeout = rtp_session_get_reporting_interval (rtpsession->priv->session); GST_DEBUG_OBJECT (rtpsession, "next RTCP timeout: %lf", timeout); target = gst_clock_get_time (clock); target += GST_SECOND * timeout; + + id = rtpsession->priv->id = gst_clock_new_single_shot_id (clock, target); GST_RTP_SESSION_UNLOCK (rtpsession); - gst_clock_id_wait (id, NULL); - - GST_DEBUG_OBJECT (rtpsession, "got RTCP timeout"); + res = gst_clock_id_wait (id, NULL); + if (res != GST_CLOCK_UNSCHEDULED) { + GST_DEBUG_OBJECT (rtpsession, "got RTCP timeout"); - /* make the session manager produce RTCP, we ignore the result. */ - rtp_session_perform_reporting (rtpsession->priv->session); + /* make the session manager produce RTCP, we ignore the result. */ + rtp_session_perform_reporting (rtpsession->priv->session); + } else { + GST_DEBUG_OBJECT (rtpsession, "got unscheduled"); + } GST_RTP_SESSION_LOCK (rtpsession); gst_clock_id_unref (id); |