summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager/gstrtpsession.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2007-04-25 13:19:36 +0000
committerWim Taymans <wim.taymans@gmail.com>2007-04-25 13:19:36 +0000
commit67c69ca0eafde9fc6312cc7aa8c0d560d5f6c53f (patch)
tree387a9bb651f972ae3be44a273b1aa6092900fbfe /gst/rtpmanager/gstrtpsession.c
parent34534179a2fe641ee5f9b4b84e523d72527e929d (diff)
downloadgst-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.c16
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);