summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager
AgeCommit message (Collapse)AuthorFilesLines
2008-10-16gst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output ↵Wim Taymans2-28/+46
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.
2008-10-16gst/rtpmanager/gstrtpsession.c: Install event handler on the rtcp_src pad, ↵Wim Taymans1-0/+29
make LATENCY event return Original commit message from CVS: * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_event_send_rtcp_src), (create_send_rtcp_src): Install event handler on the rtcp_src pad, make LATENCY event return TRUE.
2008-10-07gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal.Håvard Graff6-16/+85
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-10-07gst/rtpmanager/gstrtpbin.c: Release pads of the session manager.Wim Taymans2-4/+197
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (find_session_by_pad), (free_session), (gst_rtp_bin_dispose), (remove_recv_rtp), (remove_recv_rtcp), (remove_send_rtp), (remove_rtcp), (gst_rtp_bin_release_pad): Release pads of the session manager. Start implementing releasing pads of gstrtpbin. * gst/rtpmanager/gstrtpsession.c: (remove_recv_rtp_sink), (remove_recv_rtcp_sink), (remove_send_rtp_sink), (remove_send_rtcp_src), (gst_rtp_session_release_pad): Implement releasing pads in gstrtpsession.
2008-10-07gst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was ↵Wim Taymans1-5/+7
not already configured for the streams. Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_jitter_buffer_sink_parse_caps): Only update the seqnum-base when it was not already configured for the streams.
2008-09-30gst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the ↵Wim Taymans1-0/+18
session lock when we emit the signals. Original commit message from CVS: * gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated), (on_ssrc_active), (on_ssrc_sdes), (on_bye_ssrc), (on_bye_timeout), (on_timeout), (on_sender_timeout): Ref the rtpsource object before we release the session lock when we emit the signals.
2008-09-23gst/rtpmanager/: Fix some docs.Wim Taymans3-1/+4
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.
2008-09-17Fix compiler warnings on OS/XJan Schmidt1-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
2008-09-13gst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for ↵Wim Taymans1-7/+34
which we have not yet seen an SR packet. A... Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (create_session), (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain): Do not try to adjust the offset of streams for which we have not yet seen an SR packet. Avoids large ts-offsets in some cases.
2008-09-05gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender ↵Wim Taymans13-107/+218
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 Taymans3-6/+22
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 Taymans6-8/+88
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-08-11gst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log.Stefan Kost1-1/+2
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log. * sys/dshowsrcwrapper/gstdshowaudiosrc.c: * sys/dshowsrcwrapper/gstdshowvideosrc.c: Use "-" instead of "_" in property names. Can we call them just "device" like everywhere else?
2008-08-05gst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable ↵Olivier Crete3-2/+13
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.
2008-08-05gst/rtpmanager/gstrtpjitterbuffer.c: Fix debug by logging the right seqnum.Håvard Graff1-2/+3
Original commit message from CVS: Patch by: Håvard Graff <havard dot graff at tandberg dot com> * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain): Fix debug by logging the right seqnum.
2008-08-05gst/rtpmanager/gstrtpbin.c: Release lock before emitting the request-pt-map ↵Olivier Crete1-0/+13
signal. Original commit message from CVS: Patch by: Olivier Crete <tester at tester dot ca> * gst/rtpmanager/gstrtpbin.c: (get_pt_map): Release lock before emitting the request-pt-map signal. Fixes #543480.
2008-07-03gst/rtpmanager/: Corrected a typo (interpollate -> interpolate).Peter Kjellerstedt2-3/+3
Original commit message from CVS: * ChangeLog: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_loop): * gst/rtpmanager/rtpsource.c: (rtp_source_get_new_sr): Corrected a typo (interpollate -> interpolate).
2008-07-03gst/rtpmanager/: Changed some GST_DEBUG() to GST_LOG() to reduce the spam ↵Peter Kjellerstedt3-19/+18
when a pipeline is running normally. Original commit message from CVS: * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp), (gst_rtp_session_send_rtp), (gst_rtp_session_send_rtcp), (gst_rtp_session_sync_rtcp), (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_recv_rtcp), (gst_rtp_session_chain_send_rtp): * gst/rtpmanager/rtpsession.c: (source_push_rtp), (rtp_session_send_rtp): * gst/rtpmanager/rtpsource.c: (push_packet), (calculate_jitter), (rtp_source_process_rtp), (rtp_source_send_rtp): Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a pipeline is running normally.
2008-07-03gst/rtpmanager/: Do not mix the use of g_get_current_time() with ↵Peter Kjellerstedt3-91/+85
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-06-16Final round of doc updates.Stefan Kost1-1/+2
Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/speed/gstspeed.c: * gst/speexresample/gstspeexresample.c: * gst/videosignal/gstvideoanalyse.c: * gst/videosignal/gstvideodetect.c: * gst/videosignal/gstvideomark.c: * sys/dvb/gstdvbsrc.c: * sys/oss4/oss4-mixer.c: * sys/oss4/oss4-sink.c: * sys/oss4/oss4-source.c: * sys/wininet/gstwininetsrc.c: Final round of doc updates.
2008-06-16gst/: More doc updates. More xrefs.Stefan Kost6-153/+100
Original commit message from CVS: * gst/deinterlace/gstdeinterlace.c: * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpclient.c: * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/gstrtpptdemux.c: * gst/rtpmanager/gstrtpsession.c: * gst/rtpmanager/gstrtpssrcdemux.c: * gst/sdp/gstsdpdemux.c: More doc updates. More xrefs.
2008-06-12Do not use short_description in section docs for elements. We extract them ↵Stefan Kost6-7/+0
from element details and there will be war... Original commit message from CVS: * ext/dc1394/gstdc1394.c: * ext/ivorbis/vorbisdec.c: * ext/jack/gstjackaudiosink.c: * ext/metadata/gstmetadatademux.c: * ext/mythtv/gstmythtvsrc.c: * ext/theora/theoradec.c: * gst-libs/gst/app/gstappsink.c: * gst/bayer/gstbayer2rgb.c: * gst/deinterlace/gstdeinterlace.c: * gst/rawparse/gstaudioparse.c: * gst/rawparse/gstvideoparse.c: * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpclient.c: * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/gstrtpptdemux.c: * gst/rtpmanager/gstrtpsession.c: * gst/rtpmanager/gstrtpssrcdemux.c: * gst/selector/gstinputselector.c: * gst/selector/gstoutputselector.c: * gst/videosignal/gstvideoanalyse.c: * gst/videosignal/gstvideodetect.c: * gst/videosignal/gstvideomark.c: * sys/oss4/oss4-mixer.c: * sys/oss4/oss4-sink.c: * sys/oss4/oss4-source.c: Do not use short_description in section docs for elements. We extract them from element details and there will be warnings if they differ. Also fixing up the ChangeLog order.
2008-06-06gst/rtpmanager/gstrtpbin.c: Fix deadlock when shutting down, use a new lock ↵Wim Taymans1-3/+19
instead to properly shutdown. Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_init), (gst_rtp_bin_finalize), (gst_rtp_bin_change_state): Fix deadlock when shutting down, use a new lock instead to properly shutdown.
2008-05-27gst/rtpmanager/gstrtpbin.c: Break out of callbacks when we are shutting down.Wim Taymans1-7/+58
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_propagate_property_to_jitterbuffer), (gst_rtp_bin_change_state), (new_payload_found), (new_ssrc_pad_found): Break out of callbacks when we are shutting down. Make sure no state changes can happen when we reconfigure.
2008-05-26gst/rtpmanager/gstrtpjitterbuffer.c: When checking the seqnum, reset the ↵Wim Taymans3-38/+61
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..
2008-05-26gst/rtpmanager/gstrtpbin.c: Propagate the do-lost and latency properties to ↵Håvard Graff1-0/+24
the jitterbuffers when they are changed o... Original commit message from CVS: Patch by: Håvard Graff <havard dot graff at tandberg dot com> * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_propagate_property_to_jitterbuffer), (gst_rtp_bin_set_property): Propagate the do-lost and latency properties to the jitterbuffers when they are changed on rtpbin.
2008-05-26Don't use _gst_pad().Wim Taymans1-3/+3
Original commit message from CVS: * examples/switch/switcher.c: (switch_timer): * gst/replaygain/gstrgvolume.c: (gst_rg_volume_init): * gst/rtpmanager/gstrtpclient.c: (create_stream): * gst/sdp/gstsdpdemux.c: (gst_sdp_demux_stream_configure_udp), (gst_sdp_demux_stream_configure_udp_sink): * tests/check/elements/deinterleave.c: (GST_START_TEST), (pad_added_setup_data_check_float32_8ch_cb): * tests/check/elements/rganalysis.c: (send_eos_event), (send_tag_event): Don't use _gst_pad().
2008-05-16docs/Makefile.am: Don't attempt to build plugin docs when they're disabled.Jan Schmidt1-4/+6
Original commit message from CVS: * docs/Makefile.am: Don't attempt to build plugin docs when they're disabled. * gst/bayer/Makefile.am: Add libgstvideo to the link. * gst/rtpmanager/Makefile.am: Fix link order, and move LIBS things to _LIBS
2008-05-14gst/rtpmanager/gstrtpjitterbuffer.c: Simply drop bad RTP packets with a ↵Wim Taymans1-4/+4
warning instead of just posting an error and ... Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain): Simply drop bad RTP packets with a warning instead of just posting an error and stopping. This is a perfectly recoverable event and we don't force people to use an rtpbin to filter out bad packets first.
2008-05-13gst/rtpmanager/gstrtpbin.c: Actually add the do-lost property to the object.Wim Taymans1-0/+5
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init): Actually add the do-lost property to the object.
2008-05-12gst/rtpmanager/gstrtpjitterbuffer.c: Avoid waiting for a negative (huge) ↵Wim Taymans1-2/+8
duration when the last packet has a lower ti... Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_loop): Avoid waiting for a negative (huge) duration when the last packet has a lower timestamp than the current packet.
2008-05-12gst/rtpmanager/gstrtpsession.c: Make sure to unref the rtpsession returned ↵Peter Kjellerstedt1-0/+3
by gst_pad_get_parent() to prevent a memor... Original commit message from CVS: * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_query_send_rtcp_src): Make sure to unref the rtpsession returned by gst_pad_get_parent() to prevent a memory leak.
2008-05-12gst/rtpmanager/gstrtpjitterbuffer.c: Initialise with GST_CLOCK_TIME_NONE to ↵Jan Schmidt1-1/+1
avoid compiler warning. Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_loop): Initialise with GST_CLOCK_TIME_NONE to avoid compiler warning.
2008-05-09gst/rtpmanager/rtpsource.c: Make sure to unref the caps used by RTPSource to ↵Peter Kjellerstedt1-0/+2
prevent a memory leak. Original commit message from CVS: * gst/rtpmanager/rtpsource.c: (rtp_source_finalize): Make sure to unref the caps used by RTPSource to prevent a memory leak.
2008-05-08gst/rtpmanager/rtpsession.c: Unlock the session lock when calling one of our ↵Olivier Crete1-0/+8
callbacks. Original commit message from CVS: Patch by: Olivier Crete <tester at tester dot ca> * gst/rtpmanager/rtpsession.c: (source_clock_rate), (rtp_session_process_bye), (rtp_session_send_bye_locked): Unlock the session lock when calling one of our callbacks. Fixes #532011.
2008-05-08gst/rtpmanager/gstrtpsession.c: Send RTP BYE command on EOS. Fixes bug #531955.Sjoerd Simons1-0/+1
Original commit message from CVS: Patch by: Sjoerd Simons <sjoerd at luon dot net> * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_event_send_rtp_sink): Send RTP BYE command on EOS. Fixes bug #531955.
2008-04-25gst/rtpmanager/gstrtpbin.*: Expose new jitterbuffer property in rtpbin too.Wim Taymans2-2/+18
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (create_stream), (gst_rtp_bin_init), (gst_rtp_bin_set_property), (gst_rtp_bin_get_property): * gst/rtpmanager/gstrtpbin.h: Expose new jitterbuffer property in rtpbin too.
2008-04-25gst/rtpmanager/gstrtpjitterbuffer.c: Disable sending out rtp packet lost ↵Wim Taymans1-14/+52
events by default and make a property to ena... Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property), (gst_rtp_jitter_buffer_get_property): Disable sending out rtp packet lost events by default and make a property to enabe it. We will likely enable it by default when the base depayloaders have a default handler for them so that we don't send these events all through the pipeline for now.
2008-04-25gst/rtpmanager/gstrtpjitterbuffer.c: Remove private version of a function ↵Wim Taymans1-37/+109
that is in -base now. Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_src_event), (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): Remove private version of a function that is in -base now. Add src event handler. Rework the jitterbuffer pushing loop so that it can quickly react to lost packets and instruct the depayloader of them. This can then be used to implement error concealment data.
2008-04-25gst/rtpmanager/gstrtpsession.c: Set up some internal links functions for the ↵Wim Taymans1-0/+33
RTCP and sync pads because the defaults ... Original commit message from CVS: * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_query_send_rtcp_src), (create_recv_rtcp_sink), (create_send_rtcp_src): Set up some internal links functions for the RTCP and sync pads because the defaults are really not correct. Implement a query handler for the RTCP src pad, mostly to correctly report about the latency.
2008-04-25gst/rtpmanager/: Also keep track of the first buffer timestamp together with ↵Wim Taymans5-1/+11
the first 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.
2008-04-21gst/rtpmanager/gstrtpbin.c: Ref caps when inserting into the cache.Olivier Crete4-14/+41
Original commit message from CVS: Patch by: Olivier Crete <tester at tester dot ca> * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map), (new_ssrc_pad_found): Ref caps when inserting into the cache. Don't leak pads. * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_get_clock_rate), (gst_rtp_jitter_buffer_query): Avoid a caps leak. Don't leak refcount in query. * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps), (gst_rtp_pt_demux_chain): Avoid caps leaks. * gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure), (gst_rtp_session_init), (return_true), (gst_rtp_session_clear_pt_map), (gst_rtp_session_cache_caps), (gst_rtp_session_clock_rate): Ref caps when inserting into the cache. Fix some more caps leaks. Fixes #528245.
2008-04-17gst/rtpmanager/: Unset GValues after g_signal_emitv so that we avoid a ↵Wim Taymans4-5/+28
refcount leak. Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (get_pt_map), (free_client), (gst_rtp_bin_associate), (gst_rtp_bin_get_free_pad_name): * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_get_clock_rate): * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps): * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate): Unset GValues after g_signal_emitv so that we avoid a refcount leak. Don't leak a padname. Don't leak client streams list. Lock rtpbin when associating streams. Fixes #528245.
2008-04-09gst/rtpmanager/: Avoid leaking pads in the RTP manager.Peter Kjellerstedt2-0/+24
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (free_session): * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize): Avoid leaking pads in the RTP manager.
2008-03-11gst/rtpmanager/rtpsession.*: Implement collision and loop detection in ↵Olivier Crete4-22/+253
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-03-11gst/rtpmanager/gstrtpsession.c: Avoid a deadlock when joining the RTCP ↵Ole André Vadla Ravnås1-4/+36
thread in PAUSED because it might be blocked d... Original commit message from CVS: Based on patch by: Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com> * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init), (rtcp_thread), (start_rtcp_thread), (stop_rtcp_thread), (join_rtcp_thread), (gst_rtp_session_change_state): Avoid a deadlock when joining the RTCP thread in PAUSED because it might be blocked downstream. Also avoid spawning multiple rtcp threads. Fixes #520894.
2008-03-11gst/rtpmanager/rtpjitterbuffer.c: Don't try to reset the clock skew when we ↵Stefan Kost1-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.
2008-02-20gst/rtpmanager/gstrtpbin.c: Fix small memory leak, leaking caps. Fixes #bug ↵Olivier Crete1-0/+2
517571. Original commit message from CVS: Patch by: Olivier Crete <tester at tester dot ca> * gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found): Fix small memory leak, leaking caps. Fixes #bug 517571.
2008-02-14gst/rtpmanager/gstrtpbin.c: Ignore streams that did not receive an SR packet ↵Olivier Crete1-1/+4
when doing synchronisation. Fixes #516160. Original commit message from CVS: Patch by: Olivier Crete <tester@tester.ca> * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate): Ignore streams that did not receive an SR packet when doing synchronisation. Fixes #516160.
2008-01-29gst/rtpmanager/gstrtpjitterbuffer.c: Try to get the new clock-rate from the ↵Thijs Vermeir1-0/+7
buffer caps when we receive a new payload... Original commit message from CVS: Patch by: Thijs Vermeir <thijsvermeir at gmail dot com> * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain): Try to get the new clock-rate from the buffer caps when we receive a new payload type instead of always firing the signal. Fixes #512774.