summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager/rtpjitterbuffer.c
Commit message (Collapse)AuthorAgeFilesLines
* jitterbuffer: handle -1 input timestampsWim Taymans2009-10-011-5/+4
| | | | Don't try to check a -1 timestamp against the max delay.
* jitterbuffer: change severity of clock-rate change debugHavard Graff2009-09-081-1/+7
| | | | | | Make log GST_DEBUG under normal circumstances, GST_WARNING otherwise. Fixes #594253
* jitterbuffer: make sure time does not go backwardsWim Taymans2009-09-011-5/+19
| | | | | | | | When we construct a timestamp that would result in a timestamp that is earlier than when the packet was received, reset the skew calculation as this is probably a sign that the sender restarted or paused. Fixes #593354
* jitterbuffer: add slope estimation code and debugWim Taymans2009-08-311-4/+13
| | | | | Add some code to measure the sender speed vs the receiver speed. This can be used to detect bursts.
* jitterbuffer: reset skew when timestamps changeWim Taymans2009-08-311-10/+20
| | | | | | | Refactor the jitterbuffer resync code. Reset the skew correction when we detect a big timestamp discont. See #593354
* jitterbuffer: make sure time never goes invalidWim Taymans2009-08-311-1/+7
| | | | | | | Since the skew can be negative, we might end up with invalid timestamps. Check for negative results and clamp to 0. See #593354
* docs: various doc fixesStefan Kost2009-08-111-1/+1
| | | | | | No short-desc as we have them in the element details. Also keep things (Makefile.am and sections.txt) sorted. Reword ambigous returns. No text after since please.
* gst/rtpmanager/rtpjitterbuffer.*: Keep track of the last outgoing timestamp ↵Arnout Vandecappelle2009-08-111-2/+31
| | | | | | | | | | | | | | and of the last sender-side time. Timest... Original commit message from CVS: Patch by: Arnout Vandecappelle <arnout at mind dot be> * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), (calculate_skew): * gst/rtpmanager/rtpjitterbuffer.h: Keep track of the last outgoing timestamp and of the last sender-side time. Timestamps can only go forward if they do at the sender side, can only go back if they do at the sender side, and remain the same if they remain the same at the sender side. Fixes #565319.
* gst/rtpmanager/gstrtpbin.c: Remove internal sync pad, use signals instead to ↵Wim Taymans2009-08-111-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | get lip-sync notifications. Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), (gst_rtp_bin_handle_sync), (create_stream), (free_stream), (new_ssrc_pad_found): Remove internal sync pad, use signals instead to get lip-sync notifications. * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_base_init), (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_internal_links), (create_rtcp_sink), (remove_rtcp_sink), (gst_rtp_jitter_buffer_request_new_pad), (gst_rtp_jitter_buffer_release_pad), (gst_rtp_jitter_buffer_sink_rtcp_event), (gst_rtp_jitter_buffer_chain_rtcp), (gst_rtp_jitter_buffer_get_property): * gst/rtpmanager/gstrtpjitterbuffer.h: Make it possible to send SR packets to the jitterbuffer. Check if the SR timestamps are valid by comparing them to the RTP timestamps. Signal the SR packet and the timing information to listeners. * gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc), (gst_rtp_ssrc_demux_rtcp_chain), (gst_rtp_ssrc_demux_src_query): Remove some unused code. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), (calculate_skew), (rtp_jitter_buffer_get_sync): * gst/rtpmanager/rtpjitterbuffer.h: Keep track of the last seen RTP timestamp so that we can filter out invalid SR packets.
* gst/rtpmanager/gstrtpbin.c: Do not try to keep track of the clock-rate ↵Wim Taymans2009-08-111-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ourselves but simply get the value from the ji... Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain), (create_stream), (new_ssrc_pad_found): Do not try to keep track of the clock-rate ourselves but simply get the value from the jitterbuffer. * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_get_sync): * gst/rtpmanager/gstrtpjitterbuffer.h: Add some debug info. Pass the clock-rate to the jitterbuffer. Also pass the clock-rate along with the rtp timestamp when getting the sync parameters. * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain): Fix some debug. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), (calculate_skew), (rtp_jitter_buffer_get_sync): * gst/rtpmanager/rtpjitterbuffer.h: Keep track of clock-rate changes and return the clock-rate together with the rtp timestamps used for sync. Don't try to construct timestamps when we have no base_time. * gst/rtpmanager/rtpsource.c: (get_clock_rate): Request a new clock-rate when the payload type changes. Reset the jitter calculation when the clock-rate changes.
* gst/rtpmanager/: Small cleanups and some more debug info.Wim Taymans2009-08-111-1/+6
| | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain): * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), (calculate_skew): Small cleanups and some more debug info.
* gst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output ↵Wim Taymans2009-08-111-1/+1
| | | | | | | | | | | | | | | | | seqnum counter to check for input seqnum disco... Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_flush_start), (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): Fix problem with using the output seqnum counter to check for input seqnum discontinuities. Improve gap detection and recovery, reset and flush the jitterbuffer on seqnum restart. Fixes #556520. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert): Fix wrong G_LIKELY.
* gst/rtpmanager/: Fix some docs.Wim Taymans2009-08-111-0/+1
| | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert), (rtp_jitter_buffer_get_sync): * gst/rtpmanager/rtpsession.c: (on_sender_timeout), (session_cleanup): * gst/rtpmanager/rtpsource.c: Fix some docs.
* Fix compiler warnings on OS/XJan Schmidt2009-08-111-1/+1
| | | | | | | Original commit message from CVS: * ext/jack/gstjackaudiosink.c: (jack_process_cb): * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): Fix compiler warnings on OS/X
* gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender ↵Wim Taymans2009-08-111-34/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | becomes a receiver. Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (on_sender_timeout), (create_session), (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain), (gst_rtp_bin_class_init), (gst_rtp_bin_request_new_pad): * gst/rtpmanager/gstrtpbin.h: Add signal to notify listeners when a sender becomes a receiver. Tweak lip-sync code, don't store our own copy of the ts-offset of the jitterbuffer, don't adjust sync if the change is less than 4msec. Get the RTP timestamp <-> GStreamer timestamp relation directly from the jitterbuffer instead of our inaccurate version from the source. * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_get_sync): * gst/rtpmanager/gstrtpjitterbuffer.h: Add G_LIKELY macros, use global defines for max packet reorder and dropouts. Reset the jitterbuffer clock skew detection when packets seqnums are changed unexpectedly. * gst/rtpmanager/gstrtpsession.c: (on_sender_timeout), (gst_rtp_session_class_init), (gst_rtp_session_init): * gst/rtpmanager/gstrtpsession.h: Add sender timeout signal. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), (calculate_skew), (rtp_jitter_buffer_insert), (rtp_jitter_buffer_get_sync): * gst/rtpmanager/rtpjitterbuffer.h: Add some G_LIKELY macros. Keep track of the extended RTP timestamp so that we can report the RTP timestamp <-> GStreamer timestamp relation for lip-sync. Remove server timestamp gap detection code, the server can sometimes make a huge gap in timestamps (talk spurts,...) see #549774. Detect timetamp weirdness instead by observing the sender/receiver timestamp relation and resync if it changes more than 1 second. Add method to report about the current rtp <-> gst timestamp relation which is needed for lip-sync. * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), (on_sender_timeout), (check_collision), (rtp_session_process_sr), (session_cleanup): * gst/rtpmanager/rtpsession.h: Add sender timeout signal. Remove inaccurate rtp <-> gst timestamp relation code, the jitterbuffer can now do an accurate reporting about this. * gst/rtpmanager/rtpsource.c: (rtp_source_init), (rtp_source_update_caps), (calculate_jitter), (rtp_source_process_rtp): * gst/rtpmanager/rtpsource.h: Remove inaccurate rtp <-> gst timestamp relation code. * gst/rtpmanager/rtpstats.h: Define global max-reorder and max-dropout constants for use in various subsystems.
* gst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable ↵Olivier Crete2009-08-111-0/+1
| | | | | | | | | | | | | | | | | | before inserting it in the jitterbuffer becaus... Original commit message from CVS: Based on patch by: Olivier Crete <tester at tester dot ca> * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): Make the buffer metadata writable before inserting it in the jitterbuffer because the jitterbuffer will modify the timestamps. * gst/rtpmanager/rtpjitterbuffer.c: Update method comment about requiring writable metadata on buffers. * gst/rtpmanager/rtpsession.c: (rtp_session_process_sr), (rtp_session_process_rtcp): Make the RTCP buffer metadata writable because we want to modify the metadata. Fixes #546312.
* gst/rtpmanager/gstrtpjitterbuffer.c: When checking the seqnum, reset the ↵Wim Taymans2009-08-111-30/+33
| | | | | | | | | | | | | | | | | | | | | jitterbuffer if the gap is too big, we need ... Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): When checking the seqnum, reset the jitterbuffer if the gap is too big, we need to do this so that we can better handle a restarted source. Fix some comments. * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew), (rtp_jitter_buffer_insert): Tweak the skew resync diff. Use our working seqnum compare function in -base. Rework the jitterbuffer insert code to make it clearer and more performant by only retrieving the seqnum of the input buffer once and by adding some G_LIKELY compiler hints. Improve debugging for duplicate packets. * gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp): Fix a comment, we don't do skew correction here..
* gst/rtpmanager/rtpjitterbuffer.c: Don't try to reset the clock skew when we ↵Stefan Kost2009-08-111-1/+1
| | | | | | | | | | have no timestamps. Original commit message from CVS: Patch by: Stefan Kost <ensonic@users.sf.net> * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): Don't try to reset the clock skew when we have no timestamps. Fixes #519005.
* gst/rtpmanager/: Remove the fixed clock-rate from the jitterbuffer and ↵Olivier Crete2009-08-111-21/+6
| | | | | | | | | | | | | | extend it so that a clock-rate can be provided... Original commit message from CVS: Patch by: Olivier Crete <tester@tester.ca> * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain): * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew), (rtp_jitter_buffer_insert): * gst/rtpmanager/rtpjitterbuffer.h: Remove the fixed clock-rate from the jitterbuffer and extend it so that a clock-rate can be provided with each buffer instead. Fixes #511686.
* gst/rtpmanager/: Add signal to notify of an SDES change.Wim Taymans2009-08-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (on_ssrc_sdes), (create_session), (gst_rtp_bin_class_init): * gst/rtpmanager/gstrtpbin.h: * gst/rtpmanager/gstrtpclient.c: * gst/rtpmanager/gstrtpclient.h: * gst/rtpmanager/gstrtpjitterbuffer.h: * gst/rtpmanager/gstrtpmanager.c: * gst/rtpmanager/gstrtpptdemux.c: * gst/rtpmanager/gstrtpptdemux.h: * gst/rtpmanager/gstrtpsession.c: (on_ssrc_sdes), (gst_rtp_session_class_init), (gst_rtp_session_init): * gst/rtpmanager/gstrtpsession.h: * gst/rtpmanager/gstrtpssrcdemux.c: * gst/rtpmanager/gstrtpssrcdemux.h: * gst/rtpmanager/rtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.h: * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), (on_ssrc_sdes), (rtp_session_process_sdes): * gst/rtpmanager/rtpsession.h: * gst/rtpmanager/rtpsource.c: * gst/rtpmanager/rtpsource.h: * gst/rtpmanager/rtpstats.c: * gst/rtpmanager/rtpstats.h: Add signal to notify of an SDES change. Fix object type in the signal callbacks.
* gst/rtpmanager/: Update comment.Wim Taymans2009-08-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (create_session): * gst/rtpmanager/rtpjitterbuffer.c: Update comment. * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), (gst_rtp_session_set_property), (gst_rtp_session_get_property): Define some GObject properties to set SDES and other configuration. * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), (rtp_session_init), (rtp_session_finalize), (rtp_session_set_property), (rtp_session_get_property), (on_ssrc_sdes), (rtp_session_set_bandwidth), (rtp_session_get_bandwidth), (rtp_session_set_rtcp_fraction), (rtp_session_get_rtcp_fraction), (rtp_session_set_sdes_string), (rtp_session_get_sdes_string), (obtain_source), (rtp_session_get_internal_source), (rtp_session_process_sdes), (rtp_session_send_rtp), (rtp_session_next_timeout), (session_sdes), (is_rtcp_time): * gst/rtpmanager/rtpsession.h: Add signal when new SDES infor has been found for a source. Create properties for SDES and other info. Simplify the SDES API. Add method for getting the internal source object of the session. * gst/rtpmanager/rtpsource.c: (rtp_source_class_init), (rtp_source_finalize), (rtp_source_set_property), (rtp_source_get_property), (rtp_source_set_callbacks), (rtp_source_get_ssrc), (rtp_source_set_as_csrc), (rtp_source_is_as_csrc), (rtp_source_is_active), (rtp_source_is_validated), (rtp_source_is_sender), (rtp_source_received_bye), (rtp_source_get_bye_reason), (rtp_source_set_sdes), (rtp_source_set_sdes_string), (rtp_source_get_sdes), (rtp_source_get_sdes_string), (rtp_source_get_new_sr), (rtp_source_get_new_rb): * gst/rtpmanager/rtpsource.h: Add GObject properties for various things. Don't leak the bye reason.
* gst/rtpmanager/gstrtpjitterbuffer.c: Only peek at the tail element instead ↵Wim Taymans2009-08-111-16/+6
| | | | | | | | | | | | | | | | | | | | | of popping it off, which allows us to grea... Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): Only peek at the tail element instead of popping it off, which allows us to greatly simplify things when the tail element changes. * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_event_recv_rtp_sink): * gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_sink_event): Forward FLUSH events instead of leaking them. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), (calculate_skew), (rtp_jitter_buffer_insert): * gst/rtpmanager/rtpjitterbuffer.h: Remove the tail-changed callback in favour of a simple boolean when we insert a buffer in the queue. Add method to peek the tail of the buffer.
* gst/rtpmanager/gstrtpjitterbuffer.c: Remove some old unused variables.Wim Taymans2009-08-111-16/+57
| | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_flush_start), (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_change_state), (apply_offset), (gst_rtp_jitter_buffer_loop): Remove some old unused variables. Don't add the latency to the skew corrected timestamp, latency is only used to sync against the clock. Improve debugging. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), (rtp_jitter_buffer_reset_skew), (calculate_skew): * gst/rtpmanager/rtpjitterbuffer.h: Handle case where server timestamp goes backwards or wildly jumps by temporarily pausing the skew correction. Improve debugging.
* gst/rtpmanager/gstrtpbin.c: Fix crasher in dispose.Wim Taymans2009-08-111-5/+7
| | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (free_client): Fix crasher in dispose. * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): Handle cases where input buffers have no timestamps so that no clock skew can be calculated, in this case interpollate timestamps based on rtp timestamp and assume a 0 clock skew.
* gst/rtpmanager/gstrtpjitterbuffer.c: Remove jitter correction code, it's now ↵Wim Taymans2009-08-111-25/+61
| | | | | | | | | | | | | | | | | | | | in the lower level object. Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (apply_latency), (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query): Remove jitter correction code, it's now in the lower level object. Use new -core method for doing a peer query. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), (calculate_skew), (rtp_jitter_buffer_insert): * gst/rtpmanager/rtpjitterbuffer.h: Move jitter correction to the lowlevel jitterbuffer. Increase the max window size. When filling the window, already start estimating the skew using a parabolic weighting factor so that we have a much better startup behaviour that gets more accurate with the more samples we have. Increase the default weighting factor for the steady state to get smoother timestamps.
* gst/rtpmanager/gstrtpbin.c: Fix cleanup crasher.Wim Taymans2009-08-111-5/+11
| | | | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_dispose), (gst_rtp_bin_finalize): Fix cleanup crasher. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), (calculate_skew): * gst/rtpmanager/rtpjitterbuffer.h: Dynamically adjust the skew calculation window so that we calculate it over a period of around 2 seconds.
* gst/rtpmanager/gstrtpbin.c: Use lock to protect variable.Wim Taymans2009-08-111-2/+214
| | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_set_property), (gst_rtp_bin_get_property): Use lock to protect variable. * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_class_init), (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain), (convert_rtptime_to_gsttime), (gst_rtp_jitter_buffer_loop): Reconstruct GST timestamp from RTP timestamps based on measured clock skew and sync offset. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), (rtp_jitter_buffer_set_tail_changed), (rtp_jitter_buffer_set_clock_rate), (rtp_jitter_buffer_get_clock_rate), (calculate_skew), (rtp_jitter_buffer_insert), (rtp_jitter_buffer_peek): * gst/rtpmanager/rtpjitterbuffer.h: Measure clock skew. Add callback to be notfied when a new packet was inserted at the tail. * gst/rtpmanager/rtpsource.c: (rtp_source_init), (calculate_jitter), (rtp_source_send_rtp): * gst/rtpmanager/rtpsource.h: Remove clock skew detection, it's move to the jitterbuffer now.
* gst/rtpmanager/rtpjitterbuffer.*: Fix undefined overflow prone ts_diff handling.Wim Taymans2009-08-111-3/+5
| | | | | | | | Original commit message from CVS: * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_get_ts_diff): * gst/rtpmanager/rtpjitterbuffer.h: Fix undefined overflow prone ts_diff handling.
* gst/rtpmanager/rtpjitterbuffer.c: Include stdlib.Stefan Kost2009-08-111-0/+1
| | | | | | Original commit message from CVS: * gst/rtpmanager/rtpjitterbuffer.c: Include stdlib.
* gst/rtpmanager/: Remove complicated async queue and replace with more simple ↵Wim Taymans2009-08-111-0/+237
jitterbuffer code while also fixing some... Original commit message from CVS: * gst/rtpmanager/Makefile.am: * gst/rtpmanager/async_jitter_queue.c: * gst/rtpmanager/async_jitter_queue.h: * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_class_init), (rtp_jitter_buffer_init), (rtp_jitter_buffer_finalize), (rtp_jitter_buffer_new), (compare_seqnum), (rtp_jitter_buffer_insert), (rtp_jitter_buffer_pop), (rtp_jitter_buffer_flush), (rtp_jitter_buffer_num_packets), (rtp_jitter_buffer_get_ts_diff): * gst/rtpmanager/rtpjitterbuffer.h: Remove complicated async queue and replace with more simple jitterbuffer code while also fixing some bugs. * gst/rtpmanager/gstrtpbin-marshal.list: * gst/rtpmanager/gstrtpbin.c: (on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout), (create_session), (gst_rtp_bin_class_init), (create_recv_rtp), (create_send_rtp): * gst/rtpmanager/gstrtpbin.h: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_dispose), (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_flush_start), (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property): * gst/rtpmanager/gstrtpsession.c: (on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout), (gst_rtp_session_class_init), (gst_rtp_session_init): * gst/rtpmanager/gstrtpsession.h: * gst/rtpmanager/rtpsession.c: (on_bye_ssrc), (session_cleanup): Use new jitterbuffer code. Expose some new signals in preparation for handling EOS.