summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager/rtpsession.h
AgeCommit message (Collapse)AuthorFilesLines
2008-10-07gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal.Håvard Graff1-6/+13
Original commit message from CVS: Patch by: Håvard Graff <havard dot graff at tandberg dot com> * gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal. * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_internal_session), (gst_rtp_bin_class_init): * gst/rtpmanager/gstrtpbin.h: Add action signal to retrieve the internal RTPSession object. * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), (gst_rtp_session_get_property), (gst_rtp_session_release_pad): Add property to access the internal RTPSession object. * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), (check_collision): * gst/rtpmanager/rtpsession.h: Add action signal to retrieve an RTPSource object by SSRC. See #555396.
2008-09-05gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender ↵Wim Taymans1-0/+1
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.
2008-08-28gst/rtpmanager/gstrtpsession.c: Send EOS when the session object instructs ↵Wim Taymans1-1/+3
us to. Original commit message from CVS: * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp), (gst_rtp_session_event_send_rtp_sink): Send EOS when the session object instructs us to. * gst/rtpmanager/rtpsession.c: (rtp_session_on_timeout): * gst/rtpmanager/rtpsession.h: Make it possible for the session manager to instruct us to send EOS. We currently will EOS when the session is a sender and when the sender part goes EOS. This is not entirely correct behaviour because the session could still participate as a receiver. Fixes #549409.
2008-08-13gst/rtpmanager/gstrtpbin.c: Reset rtp timestamp interpollation when we ↵Wim Taymans1-0/+4
detect a gap when the clock_base changed. Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain), (new_ssrc_pad_found): Reset rtp timestamp interpollation when we detect a gap when the clock_base changed. Don't try to adjust the ts-offset when it's too big (> 3seconds) * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_set_ssrc): * gst/rtpmanager/gstrtpsession.h: Add method to set session SSRC. * gst/rtpmanager/rtpsession.c: (check_collision), (rtp_session_set_internal_ssrc), (rtp_session_get_internal_ssrc), (rtp_session_on_timeout): * gst/rtpmanager/rtpsession.h: Added debugging for the collision checks. Add method to change the internal SSRC of the session. * gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp): Reset the clock base when we detect large jumps in the seqnums.
2008-07-03gst/rtpmanager/: Do not mix the use of g_get_current_time() with ↵Peter Kjellerstedt1-9/+6
gst_clock_get_time(). Original commit message from CVS: * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init), (gst_rtp_session_finalize), (rtcp_thread), (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_recv_rtcp), (gst_rtp_session_event_send_rtp_sink), (gst_rtp_session_chain_send_rtp): * gst/rtpmanager/rtpsession.c: (check_collision), (update_arrival_stats), (rtp_session_process_rtp), (rtp_session_process_rtcp), (rtp_session_send_rtp), (rtp_session_send_bye_locked), (rtp_session_send_bye), (rtp_session_next_timeout), (session_report_blocks), (session_cleanup), (is_rtcp_time), (rtp_session_on_timeout): * gst/rtpmanager/rtpsession.h: Do not mix the use of g_get_current_time() with gst_clock_get_time().
2008-03-11gst/rtpmanager/rtpsession.*: Implement collision and loop detection in ↵Olivier Crete1-0/+19
rtpmanager. 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.
2008-01-11gst/rtpmanager/: Make it possible to use different user_data for each of the ↵Youness Alaoui1-6/+29
callbacks. Original commit message from CVS: Patch by: Youness Alaoui <youness dot alaoui at collabora dot co dot uk> * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate): * gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks), (rtp_session_set_process_rtp_callback), (rtp_session_set_send_rtp_callback), (rtp_session_set_send_rtcp_callback), (rtp_session_set_sync_rtcp_callback), (rtp_session_set_clock_rate_callback), (rtp_session_set_reconsider_callback), (source_push_rtp), (source_clock_rate), (rtp_session_process_bye), (rtp_session_process_rtcp), (rtp_session_send_bye), (rtp_session_on_timeout): * gst/rtpmanager/rtpsession.h: Make it possible to use different user_data for each of the callbacks. Fixes #508587.
2007-12-10gst/rtpmanager/: Add signal to notify of an SDES change.Wim Taymans1-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.
2007-12-10gst/rtpmanager/: Update comment.Wim Taymans1-26/+8
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.
2007-09-20gst/rtpmanager/: Add notification of active SSRCs to various RTP elements. ↵Wim Taymans1-0/+1
Fixes #478566. Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (on_ssrc_active), (create_session), (gst_rtp_bin_class_init): * gst/rtpmanager/gstrtpbin.h: * gst/rtpmanager/gstrtpsession.c: (on_ssrc_active), (gst_rtp_session_class_init), (gst_rtp_session_init), (gst_rtp_session_event_send_rtp_sink): * gst/rtpmanager/gstrtpsession.h: * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), (on_ssrc_active), (rtp_session_process_rb): * gst/rtpmanager/rtpsession.h: Add notification of active SSRCs to various RTP elements. Fixes #478566.
2007-09-12gst/rtpmanager/: Various leak fixes.Wim Taymans1-1/+0
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (create_session), (free_session), (get_client), (free_client), (gst_rtp_bin_associate), (free_stream), (gst_rtp_bin_class_init), (gst_rtp_bin_dispose), (gst_rtp_bin_finalize): * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_finalize): * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_release): * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize), (gst_rtp_session_set_property), (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_send_rtp): * gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_dispose): * gst/rtpmanager/rtpsession.c: (rtp_session_finalize): * gst/rtpmanager/rtpsession.h: Various leak fixes.
2007-09-03gst/rtpmanager/: Updated example pipelines in docs.Wim Taymans1-19/+19
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.
2007-08-29gst/rtpmanager/gstrtpsession.*: Distribute synchronisation parameters to the ↵Wim Taymans1-1/+6
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.
2007-04-30gst/rtpmanager/async_jitter_queue.c: Fix the case where the buffer underruns ↵Wim Taymans1-1/+2
and does not block. Original commit message from CVS: * gst/rtpmanager/async_jitter_queue.c: (signal_waiting_threads), (async_jitter_queue_pop_intern_unlocked): Fix the case where the buffer underruns and does not block. * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init), (create_recv_rtcp), (create_send_rtp), (create_rtcp), (gst_rtp_bin_request_new_pad): Rename RTCP send pad, like in the session manager. Allow getting an RTCP pad for receiving even if we don't receive RTP. fix handling of send_rtp_src pad. * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain): When no pt map could be found, fall back to the sinkpad caps. * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp), (gst_rtp_session_send_rtp), (create_recv_rtp_sink), (create_recv_rtcp_sink), (create_send_rtp_sink), (create_send_rtcp_src): Fix pad names. * gst/rtpmanager/rtpsession.c: (source_push_rtp), (rtp_session_create_source), (rtp_session_process_sr), (rtp_session_send_rtp), (session_start_rtcp): * gst/rtpmanager/rtpsession.h: Unlock session when performing a callback. Add callbacks for the internal session object. Fix sending of RTP packets. first attempt at adding NTP times in the SR packets. Small debug and doc improvements. * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp): Update stats for SR reports.
2007-04-27gst/rtpmanager/gstrtpsession.c: Move reconsideration code to the rtpsession ↵Wim Taymans1-2/+27
object. 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.
2007-04-25gst/rtpmanager/gstrtpsession.c: Implement forward and reverse reconsideration.Wim Taymans1-2/+2
Original commit message from CVS: * gst/rtpmanager/gstrtpsession.c: (rtcp_thread): Implement forward and reverse reconsideration. * gst/rtpmanager/rtpsession.c: (rtp_session_get_num_sources), (rtp_session_get_num_active_sources), (rtp_session_process_sr), (session_report_blocks): * gst/rtpmanager/rtpsession.h: Small cleanups.
2007-04-25gst/rtpmanager/gstrtpbin.c: fix for pad name changeWim Taymans1-3/+33
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.
2007-04-18configure.ac: Disable rtpmanager for now because it depends on CVS -base.Wim Taymans1-0/+206
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.