diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2007-08-16 11:40:16 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2007-08-16 11:40:16 +0000 |
commit | 6c781b9ca39a833912c4d1043922cd3430cfc9ec (patch) | |
tree | 4739198cee2937e819285572abc2043ff7cb21e9 /gst/rtpmanager/gstrtpsession.c | |
parent | 7ba5df103c37071d46177de434fdb570df68a650 (diff) | |
download | gst-plugins-bad-6c781b9ca39a833912c4d1043922cd3430cfc9ec.tar.gz gst-plugins-bad-6c781b9ca39a833912c4d1043922cd3430cfc9ec.tar.bz2 gst-plugins-bad-6c781b9ca39a833912c4d1043922cd3430cfc9ec.zip |
gst/rtpmanager/gstrtpjitterbuffer.c: Fix EOS handling.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_loop):
Fix EOS handling.
Convert some DEBUG into WARNINGs.
Pause task when flushing.
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(rtcp_thread), (gst_rtp_session_event_recv_rtcp_sink):
Use system clock for RTCP session management timeouts.
* gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
(on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout):
Release the session lock when emiting signals.
Diffstat (limited to 'gst/rtpmanager/gstrtpsession.c')
-rw-r--r-- | gst/rtpmanager/gstrtpsession.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index bb47a29e..01153e23 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -537,9 +537,10 @@ rtcp_thread (GstRTPSession * rtpsession) GstClockTime current_time; GstClockTime next_timeout; - clock = gst_element_get_clock (GST_ELEMENT_CAST (rtpsession)); + /* RTCP timeouts we use the system clock */ + clock = gst_system_clock_obtain (); if (clock == NULL) - return; + goto no_clock; current_time = gst_clock_get_time (clock); @@ -590,6 +591,15 @@ rtcp_thread (GstRTPSession * rtpsession) gst_object_unref (clock); GST_DEBUG_OBJECT (rtpsession, "leaving RTCP thread"); + return; + + /* ERRORS */ +no_clock: + { + GST_ELEMENT_ERROR (rtpsession, CORE, CLOCK, (NULL), + ("Could not get system clock")); + return; + } } static gboolean @@ -900,6 +910,10 @@ gst_rtp_session_event_recv_rtcp_sink (GstPad * pad, GstEvent * event) switch (GST_EVENT_TYPE (event)) { default: + if (rtpsession->send_rtcp_src) { + gst_event_ref (event); + ret = gst_pad_push_event (rtpsession->send_rtcp_src, event); + } ret = gst_pad_push_event (rtpsession->sync_src, event); break; } |