1. 29 Dec, 2008 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but... · b4a20d3a
      Wim Taymans authored
      gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but there was a clock-rate, assume the clock-ra...
      
      Original commit message from CVS:
      * gst/rtpmanager/rtpsource.c: (rtp_source_init),
      (rtp_source_update_caps), (get_clock_rate):
      * gst/rtpmanager/rtpsource.h:
      When no payload was specified on the caps but there was a clock-rate,
      assume the clock-rate corresponds to the first payload type found in the
      RTP packets. Fixes #565509.
      b4a20d3a
  2. 20 Nov, 2008 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.c: Pass the running time to the session when processing RTP packets. · da17b1b6
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpsession.c: (get_current_times),
      (rtcp_thread), (gst_rtp_session_chain_recv_rtp):
      Pass the running time to the session when processing RTP packets.
      Improve the time function to provide more info.
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (rtp_session_init), (update_arrival_stats),
      (rtp_session_process_rtp), (rtp_session_process_sdes),
      (rtp_session_process_rtcp), (session_start_rtcp),
      (rtp_session_on_timeout):
      * gst/rtpmanager/rtpsession.h:
      Mark the internal source with a flag.
      Use running_time instead of the more useless timestamp.
      Validate a source when a valid SDES has been received.
      Pass the current system time when processing SR packets.
      * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
      (rtp_source_init), (rtp_source_create_stats),
      (rtp_source_get_property), (rtp_source_send_rtp),
      (rtp_source_process_rb), (rtp_source_get_new_rb),
      (rtp_source_get_last_rb):
      * gst/rtpmanager/rtpsource.h:
      Add property to get source stats.
      Mark params as STATIC_STRINGS.
      Calculate the bitrate at the sender SSRC.
      Avoid negative values in the round trip time calculations.
      * gst/rtpmanager/rtpstats.h:
      Update some docs and change some variable name to more closely reflect
      what it contains.
      da17b1b6
  3. 05 Sep, 2008 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender becomes a receiver. · a35d1dde
      Wim Taymans authored
      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.
      a35d1dde
  4. 25 Apr, 2008 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/: Also keep track of the first buffer timestamp together with the first · 9285e110
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
      (gst_rtp_bin_sync_chain):
      * gst/rtpmanager/rtpsession.c: (update_arrival_stats),
      (rtp_session_process_sr), (rtp_session_on_timeout):
      * gst/rtpmanager/rtpsource.c: (rtp_source_init),
      (calculate_jitter):
      * gst/rtpmanager/rtpsource.h:
      * gst/rtpmanager/rtpstats.h:
      Also keep track of the first buffer timestamp together with the first
      RTP timestamp as they both are needed to construct the timing of
      outgoing packets in the jitterbuffer and are therefore also needed to
      manage lip-sync. This fixes lip-sync if the first RTP packets arrive
      with a wildly different gap.
      9285e110
  5. 11 Mar, 2008 1 commit
    • Olivier Crete's avatar
      gst/rtpmanager/rtpsession.*: Implement collision and loop detection in rtpmanager. · fe7b1e82
      Olivier Crete authored
      Original commit message from CVS:
      Patch by: Olivier Crete <tester at tester dot ca>
      * gst/rtpmanager/rtpsession.c: (find_add_conflicting_addresses),
      (check_collision), (obtain_source), (rtp_session_create_new_ssrc),
      (rtp_session_create_source), (rtp_session_process_rtp),
      (rtp_session_process_sr), (rtp_session_process_rr),
      (rtp_session_process_sdes), (rtp_session_process_bye),
      (rtp_session_send_bye_locked), (rtp_session_send_bye),
      (rtp_session_on_timeout):
      * gst/rtpmanager/rtpsession.h:
      Implement collision and loop detection in rtpmanager.
      Fixes #520626.
      * gst/rtpmanager/rtpsource.c: (rtp_source_reset),
      (rtp_source_init):
      * gst/rtpmanager/rtpsource.h:
      Add method to reset stats.
      fe7b1e82
  6. 10 Dec, 2007 2 commits
    • Wim Taymans's avatar
      gst/rtpmanager/: Add signal to notify of an SDES change. · b99d637a
      Wim Taymans authored
      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.
      b99d637a
    • Wim Taymans's avatar
      gst/rtpmanager/: Update comment. · 582f643e
      Wim Taymans authored
      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.
      582f643e
  7. 16 Sep, 2007 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Use lock to protect variable. · 04d3b829
      Wim Taymans authored
      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.
      04d3b829
  8. 03 Sep, 2007 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/: Updated example pipelines in docs. · fcce4aff
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpbin-marshal.list:
      * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_client),
      (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain), (create_stream),
      (gst_rtp_bin_init), (caps_changed), (new_ssrc_pad_found),
      (create_recv_rtp), (create_recv_rtcp), (create_send_rtp):
      * gst/rtpmanager/gstrtpbin.h:
      Updated example pipelines in docs.
      Handle sync_rtcp buffers from the SSRC demuxer to perform lip-sync.
      Set the default latency correctly.
      Add some more points where we can get caps.
      * gst/rtpmanager/gstrtpjitterbuffer.c:
      (gst_rtp_jitter_buffer_class_init),
      (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop),
      (gst_rtp_jitter_buffer_query),
      (gst_rtp_jitter_buffer_set_property),
      (gst_rtp_jitter_buffer_get_property):
      Add ts-offset property to control timestamping.
      * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
      (gst_rtp_session_init), (gst_rtp_session_set_property),
      (gst_rtp_session_get_property), (get_current_ntp_ns_time),
      (rtcp_thread), (stop_rtcp_thread), (gst_rtp_session_change_state),
      (gst_rtp_session_send_rtcp), (gst_rtp_session_sync_rtcp),
      (gst_rtp_session_cache_caps), (gst_rtp_session_clock_rate),
      (gst_rtp_session_sink_setcaps), (gst_rtp_session_chain_recv_rtp),
      (gst_rtp_session_event_send_rtp_sink),
      (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
      (create_recv_rtcp_sink), (create_send_rtp_sink),
      (create_send_rtcp_src):
      Various cleanups.
      Feed rtpsession manager with NTP time based on pipeline clock when
      handling RTP packets and RTCP timeouts.
      Perform all RTCP with the system clock.
      Set caps on RTCP outgoing buffers.
      * gst/rtpmanager/gstrtpssrcdemux.c: (find_demux_pad_for_ssrc),
      (create_demux_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init),
      (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event),
      (gst_rtp_ssrc_demux_rtcp_sink_event), (gst_rtp_ssrc_demux_chain),
      (gst_rtp_ssrc_demux_rtcp_chain):
      * gst/rtpmanager/gstrtpssrcdemux.h:
      Also demux RTCP messages.
      * gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks),
      (update_arrival_stats), (rtp_session_process_rtp),
      (rtp_session_process_rb), (rtp_session_process_sr),
      (rtp_session_process_rr), (rtp_session_process_rtcp),
      (rtp_session_send_rtp), (rtp_session_send_bye),
      (session_start_rtcp), (session_report_blocks), (session_cleanup),
      (rtp_session_on_timeout):
      * gst/rtpmanager/rtpsession.h:
      Remove the get_time callback, the GStreamer part will feed us with
      enough timing information.
      Split sync timing and RTCP timing information.
      Factor out common RB handling for SR and RR.
      Send out SR RTCP packets for lip-sync.
      Move SR and RR packet info generation to the source.
      * gst/rtpmanager/rtpsource.c: (rtp_source_init),
      (rtp_source_update_caps), (get_clock_rate), (calculate_jitter),
      (rtp_source_process_rtp), (rtp_source_send_rtp),
      (rtp_source_process_sr), (rtp_source_process_rb),
      (rtp_source_get_new_sr), (rtp_source_get_new_rb),
      (rtp_source_get_last_sr):
      * gst/rtpmanager/rtpsource.h:
      * gst/rtpmanager/rtpstats.h:
      Use caps on incomming buffers to get timing information when they are
      there.
      Calculate clock scew of the receiver compared to the sender and adjust
      the rtp timestamps.
      Calculate the round trip in sources.
      Do SR and RR calculations in the source.
      fcce4aff
  9. 29 Aug, 2007 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.*: Distribute synchronisation parameters to the... · 9f597336
      Wim Taymans authored
      gst/rtpmanager/gstrtpsession.*: Distribute synchronisation parameters to the session manager so that it can generate ...
      
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread),
      (gst_rtp_session_change_state),
      (gst_rtp_session_event_send_rtp_sink):
      * gst/rtpmanager/gstrtpsession.h:
      Distribute synchronisation parameters to the session manager so that it
      can generate correct SR packets for lip-sync.
      * gst/rtpmanager/rtpsession.c: (rtp_session_set_base_time),
      (rtp_session_set_timestamp_sync), (session_start_rtcp):
      * gst/rtpmanager/rtpsession.h:
      Add methods for setting sync parameters.
      Set correct RTP time in SR packets using the sync params.
      * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
      * gst/rtpmanager/rtpsource.h:
      Record last RTP <-> GST timestamp so that we can use them to convert NTP
      to RTP timestamps in SR packets.
      9f597336
  10. 27 Apr, 2007 1 commit
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.c: Move reconsideration code to the rtpsession object. · a468f02d
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
      (gst_rtp_session_send_rtcp), (gst_rtp_session_reconsider):
      Move reconsideration code to the rtpsession object.
      Simplify timout handling and add reconsideration.
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (rtp_session_init), (rtp_session_finalize), (on_bye_ssrc),
      (on_bye_timeout), (on_timeout), (rtp_session_set_callbacks),
      (obtain_source), (rtp_session_create_source),
      (update_arrival_stats), (rtp_session_process_rtp),
      (rtp_session_process_sr), (rtp_session_process_rr),
      (rtp_session_process_bye), (rtp_session_process_rtcp),
      (calculate_rtcp_interval), (rtp_session_send_bye),
      (rtp_session_next_timeout), (session_start_rtcp),
      (session_report_blocks), (session_cleanup), (session_sdes),
      (session_bye), (is_rtcp_time), (rtp_session_on_timeout):
      * gst/rtpmanager/rtpsession.h:
      Handle timeout of inactive sources and senders.
      Implement BYE scheduling.
      * gst/rtpmanager/rtpsource.c: (calculate_jitter),
      (rtp_source_process_sr), (rtp_source_get_last_sr),
      (rtp_source_get_last_rb):
      * gst/rtpmanager/rtpsource.h:
      Add members to check for timeouts.
      * gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults),
      (rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter),
      (rtp_stats_calculate_bye_interval):
      * gst/rtpmanager/rtpstats.h:
      Use RFC algorithm for calculating the reporting interval.
      a468f02d
  11. 25 Apr, 2007 2 commits
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpjitterbuffer.c: Report NO_PREROLL when going to PAUSED. · 67c69ca0
      Wim Taymans authored
      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.
      67c69ca0
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: fix for pad name change · 34534179
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpbin.c: (create_rtcp):
      fix for pad name change
      * gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
      (gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate):
      Fix for renamed methods.
      * gst/rtpmanager/rtpsession.c: (rtp_session_init),
      (rtp_session_finalize), (rtp_session_set_cname),
      (rtp_session_get_cname), (rtp_session_set_name),
      (rtp_session_get_name), (rtp_session_set_email),
      (rtp_session_get_email), (rtp_session_set_phone),
      (rtp_session_get_phone), (rtp_session_set_location),
      (rtp_session_get_location), (rtp_session_set_tool),
      (rtp_session_get_tool), (rtp_session_set_note),
      (rtp_session_get_note), (source_push_rtp), (obtain_source),
      (rtp_session_add_source), (rtp_session_get_source_by_ssrc),
      (rtp_session_create_source), (rtp_session_process_rtp),
      (rtp_session_process_sr), (rtp_session_process_sdes),
      (rtp_session_process_rtcp), (rtp_session_send_rtp),
      (rtp_session_get_reporting_interval), (session_report_blocks),
      (session_sdes), (rtp_session_perform_reporting):
      * gst/rtpmanager/rtpsession.h:
      Prepare for implementing SSRC sampling.
      Create SSRC for the session.
      Add methods to set the SDES entries.
      fix accounting of senders/receivers.
      Implement SR/RR/SDES RTCP reporting.
      * gst/rtpmanager/rtpsource.c: (rtp_source_init), (init_seq),
      (rtp_source_process_rtp), (rtp_source_process_sr):
      * gst/rtpmanager/rtpsource.h:
      Implement extended sequence number.
      * gst/rtpmanager/rtpstats.c: (rtp_stats_calculate_rtcp_interval):
      * gst/rtpmanager/rtpstats.h:
      Rename some fields.
      34534179
  12. 18 Apr, 2007 1 commit
    • Wim Taymans's avatar
      configure.ac: Disable rtpmanager for now because it depends on CVS -base. · 1d75a69c
      Wim Taymans authored
      Original commit message from CVS:
      * configure.ac:
      Disable rtpmanager for now because it depends on CVS -base.
      * gst/rtpmanager/Makefile.am:
      Added new files for session manager.
      * gst/rtpmanager/gstrtpjitterbuffer.h:
      * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
      (create_stream), (pt_map_requested), (new_ssrc_pad_found):
      Some cleanups.
      the session manager can now also request a pt-map.
      * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
      (gst_rtp_session_class_init), (gst_rtp_session_init),
      (gst_rtp_session_finalize), (rtcp_thread), (start_rtcp_thread),
      (stop_rtcp_thread), (gst_rtp_session_change_state),
      (gst_rtp_session_process_rtp), (gst_rtp_session_send_rtp),
      (gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate),
      (gst_rtp_session_get_time), (gst_rtp_session_event_recv_rtp_sink),
      (gst_rtp_session_chain_recv_rtp),
      (gst_rtp_session_event_recv_rtcp_sink),
      (gst_rtp_session_chain_recv_rtcp),
      (gst_rtp_session_event_send_rtp_sink),
      (gst_rtp_session_chain_send_rtp), (create_send_rtcp_src),
      (gst_rtp_session_request_new_pad):
      * gst/rtpmanager/gstrtpsession.h:
      We can ask for pt-map now too when the session manager needs it.
      Hook up to the new session manager, implement the needed callbacks for
      pushing data, getting clock time and requesting clock-rates.
      Rename rtcp_src to send_rtcp_src to make it clear that this RTCP is to
      be send to clients.
      Add code to start and stop the thread that will schedule RTCP through
      the session manager.
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (rtp_session_init), (rtp_session_finalize),
      (rtp_session_set_property), (rtp_session_get_property),
      (on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated),
      (on_bye_ssrc), (rtp_session_new), (rtp_session_set_callbacks),
      (rtp_session_set_bandwidth), (rtp_session_get_bandwidth),
      (rtp_session_set_rtcp_bandwidth), (rtp_session_get_rtcp_bandwidth),
      (source_push_rtp), (source_clock_rate), (check_collision),
      (obtain_source), (rtp_session_add_source),
      (rtp_session_get_num_sources),
      (rtp_session_get_num_active_sources),
      (rtp_session_get_source_by_ssrc),
      (rtp_session_get_source_by_cname), (rtp_session_create_source),
      (update_arrival_stats), (rtp_session_process_rtp),
      (rtp_session_process_sr), (rtp_session_process_rr),
      (rtp_session_process_sdes), (rtp_session_process_bye),
      (rtp_session_process_app), (rtp_session_process_rtcp),
      (rtp_session_send_rtp), (rtp_session_get_rtcp_interval),
      (rtp_session_produce_rtcp):
      * gst/rtpmanager/rtpsession.h:
      The advanced beginnings of the main session manager that handles the
      participant database of RTPSources, SSRC probation, SSRC collisions,
      parse RTCP to update source stats. etc..
      * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
      (rtp_source_init), (rtp_source_finalize), (rtp_source_new),
      (rtp_source_set_callbacks), (rtp_source_set_as_csrc),
      (rtp_source_set_rtp_from), (rtp_source_set_rtcp_from),
      (push_packet), (get_clock_rate), (calculate_jitter),
      (rtp_source_process_rtp), (rtp_source_process_bye),
      (rtp_source_send_rtp), (rtp_source_process_sr),
      (rtp_source_process_rb):
      * gst/rtpmanager/rtpsource.h:
      Object that encapsulates an SSRC and its state in the database.
      Calculates the jitter and transit times of data packets.
      * gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults),
      (rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter):
      * gst/rtpmanager/rtpstats.h:
      Various stats regarding the session and sources.
      Used to calculate the RTCP interval.
      1d75a69c