platform/upstream/gstreamer.git
14 years agogst/rtpmanager/rtpsession.c: Add G_PARAM_STATIC_STRINGS.
Wim Taymans [Sat, 22 Nov 2008 15:24:47 +0000 (15:24 +0000)]
gst/rtpmanager/rtpsession.c: Add G_PARAM_STATIC_STRINGS.

Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(copy_source), (rtp_session_create_sources),
(rtp_session_get_property):
Add G_PARAM_STATIC_STRINGS.
Add property to return a GValueArray of all known RTPSources in the
session.
* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
(rtp_source_create_sdes), (rtp_source_set_property),
(rtp_source_get_property):
Remove properties to set the various SDES items, an application is never
supposed to change the RTPSource data.
Change the SDES getter properties to one SDES property that returns all
SDES items in a GstStructure.

14 years agogst/rtpmanager/gstrtpbin.c: Also unref the target pad for unknown pads.
Wim Taymans [Sat, 22 Nov 2008 13:17:24 +0000 (13:17 +0000)]
gst/rtpmanager/gstrtpbin.c: Also unref the target pad for unknown pads.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
Also unref the target pad for unknown pads.

14 years agogst/rtpmanager/gstrtpbin.c: Release the right pads on rtpbin. Fixes #561752.
Olivier Crete [Fri, 21 Nov 2008 16:17:22 +0000 (16:17 +0000)]
gst/rtpmanager/gstrtpbin.c: Release the right pads on rtpbin. Fixes #561752.

Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
Release the right pads on rtpbin. Fixes #561752.

14 years agogst/rtpmanager/gstrtpsession.c: Pass the running time to the session when processing...
Wim Taymans [Thu, 20 Nov 2008 18:41:34 +0000 (18:41 +0000)]
gst/rtpmanager/gstrtpsession.c: Pass the running time to the session when processing RTP packets.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Initialize return value to fix compiler warning...
Sebastian Dröge [Thu, 20 Nov 2008 08:19:15 +0000 (08:19 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Initialize return value to fix compiler warning about uninitialized variable.

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain_rtcp):
Initialize return value to fix compiler warning about uninitialized
variable.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Mark signal arg as static scope.
Wim Taymans [Wed, 19 Nov 2008 16:48:38 +0000 (16:48 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Mark signal arg as static scope.

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init):
Mark signal arg as static scope.

14 years agogst/rtpmanager/gstrtpbin.c: Remove internal sync pad, use signals instead to get...
Wim Taymans [Wed, 19 Nov 2008 09:06:29 +0000 (09:06 +0000)]
gst/rtpmanager/gstrtpbin.c: Remove internal sync pad, use signals instead to 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.

14 years agogst/rtpmanager/rtpsource.c: Fix GST_DEBUG call to only have as many arguments as...
Sebastian Dröge [Mon, 17 Nov 2008 19:47:32 +0000 (19:47 +0000)]
gst/rtpmanager/rtpsource.c: Fix GST_DEBUG call to only have as many arguments as required by the format string. Fixes...

Original commit message from CVS:
* gst/rtpmanager/rtpsource.c: (get_clock_rate):
Fix GST_DEBUG call to only have as many arguments as required
by the format string. Fixes a compiler warning.

14 years agogst/rtpmanager/gstrtpbin.c: Do not try to keep track of the clock-rate ourselves...
Wim Taymans [Mon, 17 Nov 2008 15:17:52 +0000 (15:17 +0000)]
gst/rtpmanager/gstrtpbin.c: Do not try to keep track of the clock-rate 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.

14 years agogst/rtpmanager/: Small cleanups and some more debug info.
Wim Taymans [Thu, 13 Nov 2008 15:48:54 +0000 (15:48 +0000)]
gst/rtpmanager/: Small cleanups and some more debug info.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Also configure the next expected output seqnum...
Wim Taymans [Mon, 10 Nov 2008 15:26:40 +0000 (15:26 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Also configure the next expected output seqnum when we get a seqnum-base on the ...

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain):
Also configure the next expected output seqnum when we get a seqnum-base
on the caps.

14 years agoDon't install static libs for plugins. Fixes #550851 for -bad.
Stefan Kost [Tue, 4 Nov 2008 12:42:30 +0000 (12:42 +0000)]
Don't install static libs for plugins. Fixes #550851 for -bad.

Original commit message from CVS:
* ext/alsaspdif/Makefile.am:
* ext/amrwb/Makefile.am:
* ext/apexsink/Makefile.am:
* ext/arts/Makefile.am:
* ext/artsd/Makefile.am:
* ext/audiofile/Makefile.am:
* ext/audioresample/Makefile.am:
* ext/bz2/Makefile.am:
* ext/cdaudio/Makefile.am:
* ext/celt/Makefile.am:
* ext/dc1394/Makefile.am:
* ext/dirac/Makefile.am:
* ext/directfb/Makefile.am:
* ext/divx/Makefile.am:
* ext/dts/Makefile.am:
* ext/faac/Makefile.am:
* ext/faad/Makefile.am:
* ext/gsm/Makefile.am:
* ext/hermes/Makefile.am:
* ext/ivorbis/Makefile.am:
* ext/jack/Makefile.am:
* ext/jp2k/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/lcs/Makefile.am:
* ext/libfame/Makefile.am:
* ext/libmms/Makefile.am:
* ext/metadata/Makefile.am:
* ext/mpeg2enc/Makefile.am:
* ext/mplex/Makefile.am:
* ext/musepack/Makefile.am:
* ext/musicbrainz/Makefile.am:
* ext/mythtv/Makefile.am:
* ext/nas/Makefile.am:
* ext/neon/Makefile.am:
* ext/ofa/Makefile.am:
* ext/polyp/Makefile.am:
* ext/resindvd/Makefile.am:
* ext/sdl/Makefile.am:
* ext/shout/Makefile.am:
* ext/snapshot/Makefile.am:
* ext/sndfile/Makefile.am:
* ext/soundtouch/Makefile.am:
* ext/spc/Makefile.am:
* ext/swfdec/Makefile.am:
* ext/tarkin/Makefile.am:
* ext/theora/Makefile.am:
* ext/timidity/Makefile.am:
* ext/twolame/Makefile.am:
* ext/x264/Makefile.am:
* ext/xine/Makefile.am:
* ext/xvid/Makefile.am:
* gst-libs/gst/app/Makefile.am:
* gst-libs/gst/dshow/Makefile.am:
* gst/aiffparse/Makefile.am:
* gst/app/Makefile.am:
* gst/audiobuffer/Makefile.am:
* gst/bayer/Makefile.am:
* gst/cdxaparse/Makefile.am:
* gst/chart/Makefile.am:
* gst/colorspace/Makefile.am:
* gst/dccp/Makefile.am:
* gst/deinterlace/Makefile.am:
* gst/deinterlace2/Makefile.am:
* gst/dvdspu/Makefile.am:
* gst/festival/Makefile.am:
* gst/filter/Makefile.am:
* gst/flacparse/Makefile.am:
* gst/flv/Makefile.am:
* gst/games/Makefile.am:
* gst/h264parse/Makefile.am:
* gst/librfb/Makefile.am:
* gst/mixmatrix/Makefile.am:
* gst/modplug/Makefile.am:
* gst/mpeg1sys/Makefile.am:
* gst/mpeg4videoparse/Makefile.am:
* gst/mpegdemux/Makefile.am:
* gst/mpegtsmux/Makefile.am:
* gst/mpegvideoparse/Makefile.am:
* gst/mve/Makefile.am:
* gst/nsf/Makefile.am:
* gst/nuvdemux/Makefile.am:
* gst/overlay/Makefile.am:
* gst/passthrough/Makefile.am:
* gst/pcapparse/Makefile.am:
* gst/playondemand/Makefile.am:
* gst/rawparse/Makefile.am:
* gst/real/Makefile.am:
* gst/rtjpeg/Makefile.am:
* gst/rtpmanager/Makefile.am:
* gst/scaletempo/Makefile.am:
* gst/sdp/Makefile.am:
* gst/selector/Makefile.am:
* gst/smooth/Makefile.am:
* gst/smoothwave/Makefile.am:
* gst/speed/Makefile.am:
* gst/speexresample/Makefile.am:
* gst/stereo/Makefile.am:
* gst/subenc/Makefile.am:
* gst/tta/Makefile.am:
* gst/vbidec/Makefile.am:
* gst/videodrop/Makefile.am:
* gst/videosignal/Makefile.am:
* gst/virtualdub/Makefile.am:
* gst/vmnc/Makefile.am:
* gst/y4m/Makefile.am:
* sys/acmenc/Makefile.am:
* sys/cdrom/Makefile.am:
* sys/dshowdecwrapper/Makefile.am:
* sys/dshowsrcwrapper/Makefile.am:
* sys/dvb/Makefile.am:
* sys/dxr3/Makefile.am:
* sys/fbdev/Makefile.am:
* sys/oss4/Makefile.am:
* sys/qcam/Makefile.am:
* sys/qtwrapper/Makefile.am:
* sys/vcd/Makefile.am:
* sys/wininet/Makefile.am:
* win32/common/config.h:
Don't install static libs for plugins. Fixes #550851 for -bad.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output seqnum counter...
Wim Taymans [Thu, 16 Oct 2008 13:05:37 +0000 (13:05 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output 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.

14 years agogst/rtpmanager/gstrtpsession.c: Install event handler on the rtcp_src pad, make LATEN...
Wim Taymans [Thu, 16 Oct 2008 09:51:28 +0000 (09:51 +0000)]
gst/rtpmanager/gstrtpsession.c: Install event handler on the rtcp_src pad, 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.

14 years agogst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal.
Håvard Graff [Tue, 7 Oct 2008 18:54:41 +0000 (18:54 +0000)]
gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal.

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.

14 years agogst/rtpmanager/gstrtpbin.c: Release pads of the session manager.
Wim Taymans [Tue, 7 Oct 2008 11:33:10 +0000 (11:33 +0000)]
gst/rtpmanager/gstrtpbin.c: Release pads of the session manager.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was not...
Wim Taymans [Tue, 7 Oct 2008 10:02:20 +0000 (10:02 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was 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.

14 years agogst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the session...
Wim Taymans [Tue, 30 Sep 2008 15:08:52 +0000 (15:08 +0000)]
gst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the 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.

14 years agogst/rtpmanager/: Fix some docs.
Wim Taymans [Tue, 23 Sep 2008 18:13:31 +0000 (18:13 +0000)]
gst/rtpmanager/: Fix some docs.

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.

14 years agoFix compiler warnings on OS/X
Jan Schmidt [Wed, 17 Sep 2008 13:59:21 +0000 (13:59 +0000)]
Fix compiler warnings on OS/X

Original commit message from CVS:
* ext/jack/gstjackaudiosink.c: (jack_process_cb):
* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
Fix compiler warnings on OS/X

14 years agogst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for which...
Wim Taymans [Sat, 13 Sep 2008 01:37:50 +0000 (01:37 +0000)]
gst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for 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.

14 years agogst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender becomes...
Wim Taymans [Fri, 5 Sep 2008 13:52:34 +0000 (13:52 +0000)]
gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender 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.

14 years agogst/rtpmanager/gstrtpsession.c: Send EOS when the session object instructs us to.
Wim Taymans [Thu, 28 Aug 2008 15:21:45 +0000 (15:21 +0000)]
gst/rtpmanager/gstrtpsession.c: Send EOS when the session object instructs 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.

14 years agogst/rtpmanager/gstrtpbin.c: Reset rtp timestamp interpollation when we detect a gap...
Wim Taymans [Wed, 13 Aug 2008 14:31:02 +0000 (14:31 +0000)]
gst/rtpmanager/gstrtpbin.c: Reset rtp timestamp interpollation when we 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.

14 years agogst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log.
Stefan Kost [Mon, 11 Aug 2008 07:20:15 +0000 (07:20 +0000)]
gst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log.

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?

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable before inserti...
Olivier Crete [Tue, 5 Aug 2008 09:42:53 +0000 (09:42 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable 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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Fix debug by logging the right seqnum.
Håvard Graff [Tue, 5 Aug 2008 09:00:50 +0000 (09:00 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Fix debug by logging the right seqnum.

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.

14 years agogst/rtpmanager/gstrtpbin.c: Release lock before emitting the request-pt-map signal.
Olivier Crete [Tue, 5 Aug 2008 08:58:27 +0000 (08:58 +0000)]
gst/rtpmanager/gstrtpbin.c: Release lock before emitting the request-pt-map 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.

14 years agogst/rtpmanager/: Corrected a typo (interpollate -> interpolate).
Peter Kjellerstedt [Thu, 3 Jul 2008 14:44:51 +0000 (14:44 +0000)]
gst/rtpmanager/: Corrected a typo (interpollate -> interpolate).

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).

14 years agogst/rtpmanager/: Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a...
Peter Kjellerstedt [Thu, 3 Jul 2008 14:31:10 +0000 (14:31 +0000)]
gst/rtpmanager/: Changed some GST_DEBUG() to GST_LOG() to reduce the spam 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.

14 years agogst/rtpmanager/: Do not mix the use of g_get_current_time() with gst_clock_get_time().
Peter Kjellerstedt [Thu, 3 Jul 2008 13:47:19 +0000 (13:47 +0000)]
gst/rtpmanager/: Do not mix the use of g_get_current_time() with 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().

14 years agoFinal round of doc updates.
Stefan Kost [Mon, 16 Jun 2008 07:30:34 +0000 (07:30 +0000)]
Final round of doc updates.

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.

14 years agogst/: More doc updates. More xrefs.
Stefan Kost [Mon, 16 Jun 2008 07:03:58 +0000 (07:03 +0000)]
gst/: More doc updates. More xrefs.

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.

14 years agoDo not use short_description in section docs for elements. We extract them from eleme...
Stefan Kost [Thu, 12 Jun 2008 14:49:18 +0000 (14:49 +0000)]
Do not use short_description in section docs for elements. We extract them 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.

14 years agogst/rtpmanager/gstrtpbin.c: Fix deadlock when shutting down, use a new lock instead...
Wim Taymans [Fri, 6 Jun 2008 13:01:05 +0000 (13:01 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix deadlock when shutting down, use a new lock 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.

14 years agogst/rtpmanager/gstrtpbin.c: Break out of callbacks when we are shutting down.
Wim Taymans [Tue, 27 May 2008 16:48:10 +0000 (16:48 +0000)]
gst/rtpmanager/gstrtpbin.c: Break out of callbacks when we are shutting down.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: When checking the seqnum, reset the jitterbuffer...
Wim Taymans [Mon, 26 May 2008 10:09:29 +0000 (10:09 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: When checking the seqnum, reset the 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..

14 years agogst/rtpmanager/gstrtpbin.c: Propagate the do-lost and latency properties to the jitte...
Håvard Graff [Mon, 26 May 2008 10:00:24 +0000 (10:00 +0000)]
gst/rtpmanager/gstrtpbin.c: Propagate the do-lost and latency properties to 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.

14 years agoDon't use _gst_pad().
Wim Taymans [Mon, 26 May 2008 09:57:40 +0000 (09:57 +0000)]
Don't use _gst_pad().

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().

14 years agodocs/Makefile.am: Don't attempt to build plugin docs when they're disabled.
Jan Schmidt [Fri, 16 May 2008 19:56:30 +0000 (19:56 +0000)]
docs/Makefile.am: Don't attempt to build plugin docs when they're disabled.

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

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Simply drop bad RTP packets with a warning inste...
Wim Taymans [Wed, 14 May 2008 21:02:19 +0000 (21:02 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Simply drop bad RTP packets with a 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.

14 years agogst/rtpmanager/gstrtpbin.c: Actually add the do-lost property to the object.
Wim Taymans [Tue, 13 May 2008 09:06:51 +0000 (09:06 +0000)]
gst/rtpmanager/gstrtpbin.c: Actually add the do-lost property to the object.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
Actually add the do-lost property to the object.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Avoid waiting for a negative (huge) duration...
Wim Taymans [Mon, 12 May 2008 18:43:41 +0000 (18:43 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Avoid waiting for a negative (huge) 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.

14 years agogst/rtpmanager/gstrtpsession.c: Make sure to unref the rtpsession returned by gst_pad...
Peter Kjellerstedt [Mon, 12 May 2008 14:28:09 +0000 (14:28 +0000)]
gst/rtpmanager/gstrtpsession.c: Make sure to unref the rtpsession returned 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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Initialise with GST_CLOCK_TIME_NONE to avoid...
Jan Schmidt [Mon, 12 May 2008 14:12:08 +0000 (14:12 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Initialise with GST_CLOCK_TIME_NONE to 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.

14 years agogst/rtpmanager/rtpsource.c: Make sure to unref the caps used by RTPSource to prevent...
Peter Kjellerstedt [Fri, 9 May 2008 07:41:58 +0000 (07:41 +0000)]
gst/rtpmanager/rtpsource.c: Make sure to unref the caps used by RTPSource to 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.

14 years agogst/rtpmanager/rtpsession.c: Unlock the session lock when calling one of our callbacks.
Olivier Crete [Thu, 8 May 2008 09:43:33 +0000 (09:43 +0000)]
gst/rtpmanager/rtpsession.c: Unlock the session lock when calling one of our 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.

14 years agogst/rtpmanager/gstrtpsession.c: Send RTP BYE command on EOS. Fixes bug #531955.
Sjoerd Simons [Thu, 8 May 2008 06:23:39 +0000 (06:23 +0000)]
gst/rtpmanager/gstrtpsession.c: Send RTP BYE command on EOS. Fixes bug #531955.

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.

14 years agogst/rtpmanager/gstrtpbin.*: Expose new jitterbuffer property in rtpbin too.
Wim Taymans [Fri, 25 Apr 2008 11:32:09 +0000 (11:32 +0000)]
gst/rtpmanager/gstrtpbin.*: Expose new jitterbuffer property in rtpbin too.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Disable sending out rtp packet lost events by...
Wim Taymans [Fri, 25 Apr 2008 11:22:13 +0000 (11:22 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Disable sending out rtp packet lost 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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Remove private version of a function that is...
Wim Taymans [Fri, 25 Apr 2008 09:35:43 +0000 (09:35 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Remove private version of a function 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.

14 years agogst/rtpmanager/gstrtpsession.c: Set up some internal links functions for the RTCP...
Wim Taymans [Fri, 25 Apr 2008 08:21:06 +0000 (08:21 +0000)]
gst/rtpmanager/gstrtpsession.c: Set up some internal links functions for the 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.

14 years agogst/rtpmanager/: Also keep track of the first buffer timestamp together with the...
Wim Taymans [Fri, 25 Apr 2008 08:15:58 +0000 (08:15 +0000)]
gst/rtpmanager/: Also keep track of the first buffer timestamp together with 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.

14 years agogst/rtpmanager/gstrtpbin.c: Ref caps when inserting into the cache.
Olivier Crete [Mon, 21 Apr 2008 08:26:37 +0000 (08:26 +0000)]
gst/rtpmanager/gstrtpbin.c: Ref caps when inserting into the cache.

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.

14 years agogst/rtpmanager/: Unset GValues after g_signal_emitv so that we avoid a refcount leak.
Wim Taymans [Thu, 17 Apr 2008 07:31:44 +0000 (07:31 +0000)]
gst/rtpmanager/: Unset GValues after g_signal_emitv so that we avoid a 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.

14 years agogst/rtpmanager/: Avoid leaking pads in the RTP manager.
Peter Kjellerstedt [Wed, 9 Apr 2008 22:27:50 +0000 (22:27 +0000)]
gst/rtpmanager/: Avoid leaking pads in the RTP manager.

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.

14 years agogst/rtpmanager/rtpsession.*: Implement collision and loop detection in rtpmanager.
Olivier Crete [Tue, 11 Mar 2008 12:40:58 +0000 (12:40 +0000)]
gst/rtpmanager/rtpsession.*: Implement collision and loop detection in 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.

14 years agogst/rtpmanager/gstrtpsession.c: Avoid a deadlock when joining the RTCP thread in...
Ole André Vadla Ravnås [Tue, 11 Mar 2008 11:36:03 +0000 (11:36 +0000)]
gst/rtpmanager/gstrtpsession.c: Avoid a deadlock when joining the RTCP 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.

14 years agogst/rtpmanager/rtpjitterbuffer.c: Don't try to reset the clock skew when we have...
Stefan Kost [Tue, 11 Mar 2008 10:43:32 +0000 (10:43 +0000)]
gst/rtpmanager/rtpjitterbuffer.c: Don't try to reset the clock skew when we 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.

14 years agogst/rtpmanager/gstrtpbin.c: Fix small memory leak, leaking caps. Fixes #bug 517571.
Olivier Crete [Wed, 20 Feb 2008 09:33:25 +0000 (09:33 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix small memory leak, leaking caps. Fixes #bug 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.

14 years agogst/rtpmanager/gstrtpbin.c: Ignore streams that did not receive an SR packet when...
Olivier Crete [Thu, 14 Feb 2008 16:25:51 +0000 (16:25 +0000)]
gst/rtpmanager/gstrtpbin.c: Ignore streams that did not receive an SR packet 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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Try to get the new clock-rate from the buffer...
Thijs Vermeir [Tue, 29 Jan 2008 18:57:27 +0000 (18:57 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Try to get the new clock-rate from the 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.

14 years agogst/rtpmanager/gstrtpbin.c: Also handle lip-sync when the clock-rate is not provided...
Olivier Crete [Fri, 25 Jan 2008 16:58:00 +0000 (16:58 +0000)]
gst/rtpmanager/gstrtpbin.c: Also handle lip-sync when the clock-rate is not provided with caps but with a signal.

Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
(create_stream), (payload_type_change), (new_ssrc_pad_found):
Also handle lip-sync when the clock-rate is not provided with caps but
with a signal.

14 years agogst/rtpmanager/: Remove the fixed clock-rate from the jitterbuffer and extend it...
Olivier Crete [Fri, 25 Jan 2008 16:00:52 +0000 (16:00 +0000)]
gst/rtpmanager/: Remove the fixed clock-rate from the jitterbuffer and 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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Remove old unused variable.
Olivier Crete [Fri, 25 Jan 2008 15:49:55 +0000 (15:49 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Remove old unused variable.

Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_change_state),
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
Remove old unused variable.
Track pt on input buffers and get the clock-rate when it changes.
Ignore packets with unknown clock-rate. See #511686.

14 years agogst/rtpmanager/rtpsource.c: Fix unref of buffer using the wrong function. Fixes...
Olivier Crete [Fri, 25 Jan 2008 01:44:27 +0000 (01:44 +0000)]
gst/rtpmanager/rtpsource.c: Fix unref of buffer using the wrong function.  Fixes #511920

Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/rtpsource.c: Fix unref of buffer using the
wrong function.  Fixes #511920

14 years agogst/rtpmanager/gstrtpsession.c: If we find the caps in the cache, use it to parse...
Wim Taymans [Fri, 11 Jan 2008 17:02:30 +0000 (17:02 +0000)]
gst/rtpmanager/gstrtpsession.c: If we find the caps in the cache, use it to parse the clock-rate instead of returning...

Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate):
If we find the caps in the cache, use it to parse the clock-rate instead
of returning an error. Fixes a TODO as found by Youness Alaoui.

14 years agogst/rtpmanager/: Make it possible to use different user_data for each of the callbacks.
Youness Alaoui [Fri, 11 Jan 2008 16:45:57 +0000 (16:45 +0000)]
gst/rtpmanager/: Make it possible to use different user_data for each of the 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.

14 years agogst/rtpmanager/gstrtpbin.c: Fix documentation for latest patch
Thijs Vermeir [Thu, 10 Jan 2008 20:57:17 +0000 (20:57 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix documentation for latest patch

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c:
Fix documentation for latest patch

14 years agogst/rtpmanager/gstrtpbin.c: Allow request_new_pad with name NULL (bug #508515)
Thijs Vermeir [Thu, 10 Jan 2008 14:34:30 +0000 (14:34 +0000)]
gst/rtpmanager/gstrtpbin.c: Allow request_new_pad with name NULL (bug #508515)

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c:
Allow request_new_pad with name NULL (bug #508515)

14 years agogst/rtpmanager/gstrtpsession.c: Don't set fixed caps, we can basically do everything...
Wim Taymans [Wed, 9 Jan 2008 14:39:44 +0000 (14:39 +0000)]
gst/rtpmanager/gstrtpsession.c: Don't set fixed caps, we can basically do everything the upsteam peer pad can renegot...

Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c: (create_send_rtp_sink):
Don't set fixed caps, we can basically do everything the upsteam peer
pad can renegotiate to. Fixes #507940.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Don't unref the popped buffer when we don't...
Wim Taymans [Fri, 4 Jan 2008 18:47:57 +0000 (18:47 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Don't unref the popped buffer when we don't have ownership.

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_loop):
Don't unref the popped buffer when we don't have ownership.
Fixes #507020.

14 years agogst/rtpmanager/gstrtpssrcdemux.c: Don't clean up pads when going to PAUSED.
Wim Taymans [Mon, 31 Dec 2007 13:12:06 +0000 (13:12 +0000)]
gst/rtpmanager/gstrtpssrcdemux.c: Don't clean up pads when going to PAUSED.

Original commit message from CVS:
* gst/rtpmanager/gstrtpssrcdemux.c:
(gst_rtp_ssrc_demux_change_state):
Don't clean up pads when going to PAUSED.

14 years agogst/rtpmanager/: Clean up the dynamic pads when going to READY.
Wim Taymans [Wed, 12 Dec 2007 16:59:03 +0000 (16:59 +0000)]
gst/rtpmanager/: Clean up the dynamic pads when going to READY.

Original commit message from CVS:
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_finalize),
(gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release),
(gst_rtp_pt_demux_change_state):
* gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_reset),
(gst_rtp_ssrc_demux_dispose), (gst_rtp_ssrc_demux_src_query),
(gst_rtp_ssrc_demux_change_state):
Clean up the dynamic pads when going to READY.

14 years agogst/rtpmanager/: Fix some leaks.
Wim Taymans [Wed, 12 Dec 2007 12:11:53 +0000 (12:11 +0000)]
gst/rtpmanager/: Fix some leaks.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_finalize),
(gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string),
(gst_rtp_bin_handle_message):
* gst/rtpmanager/rtpsession.c: (rtp_session_finalize),
(rtp_session_send_bye):
* gst/rtpmanager/rtpsource.c: (rtp_source_finalize):
Fix some leaks.

14 years agogst/rtpmanager/: Post a message when the SDES infor changes for a source.
Wim Taymans [Mon, 10 Dec 2007 18:36:04 +0000 (18:36 +0000)]
gst/rtpmanager/: Post a message when the SDES infor changes for a source.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init),
(gst_rtp_bin_handle_message):
* gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure),
(on_ssrc_sdes):
Post a message when the SDES infor changes for a source.
* gst/rtpmanager/rtpsession.c:
* gst/rtpmanager/rtpsource.c:
Update some comments.

14 years agogst/rtpmanager/: Add signal to notify of an SDES change.
Wim Taymans [Mon, 10 Dec 2007 15:34:19 +0000 (15:34 +0000)]
gst/rtpmanager/: Add signal to notify of an SDES change.

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.

14 years agogst/rtpmanager/gstrtpbin.*: Expose SDES items as properties and configure the session...
Wim Taymans [Mon, 10 Dec 2007 14:03:32 +0000 (14:03 +0000)]
gst/rtpmanager/gstrtpbin.*: Expose SDES items as properties and configure the session managers with them.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_session),
(gst_rtp_bin_class_init), (gst_rtp_bin_init), (sdes_type_to_name),
(gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string),
(gst_rtp_bin_set_property), (gst_rtp_bin_get_property):
* gst/rtpmanager/gstrtpbin.h:
Expose SDES items as properties and configure the session managers with
them.
* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
(rtp_source_set_property):
Fix SSRC property.

14 years agogst/rtpmanager/: Update comment.
Wim Taymans [Mon, 10 Dec 2007 11:08:11 +0000 (11:08 +0000)]
gst/rtpmanager/: Update comment.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: jitterbuffer can buffer an unlimited amount...
Wim Taymans [Thu, 22 Nov 2007 09:08:27 +0000 (09:08 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: jitterbuffer can buffer an unlimited amount of time and thus has no max_latency ...

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_query):
jitterbuffer can buffer an unlimited amount of time and thus has no
max_latency requirements.

14 years agogst/rtpmanager/gstrtpsession.c: Fix bad function signatures (#492798).
Ole André Vadla Ravnås [Fri, 2 Nov 2007 21:45:38 +0000 (21:45 +0000)]
gst/rtpmanager/gstrtpsession.c: Fix bad function signatures (#492798).

Original commit message from CVS:
Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
* gst/rtpmanager/gstrtpsession.c:
Fix bad function signatures (#492798).

14 years agogst/rtpmanager/gstrtpbin.c: Fix memleak. Fixes #484990.
Laurent Glayal [Tue, 9 Oct 2007 10:01:39 +0000 (10:01 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix memleak. Fixes #484990.

Original commit message from CVS:
Patch by: Laurent Glayal <spglegle at yahoo dot fr>
* gst/rtpmanager/gstrtpbin.c: (create_stream),
(gst_rtp_bin_class_init):
Fix memleak. Fixes #484990.

14 years agogst/: Fix compiler warnings shown by Forte.
Jan Schmidt [Mon, 8 Oct 2007 17:46:45 +0000 (17:46 +0000)]
gst/: Fix compiler warnings shown by Forte.

Original commit message from CVS:
* gst/librfb/rfbbuffer.c: (rfb_buffer_new_and_alloc):
* gst/librfb/rfbbuffer.h:
* gst/librfb/rfbdecoder.c: (rfb_socket_get_buffer):
* gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_chain):
* gst/nsf/nes6502.c: (nes6502_execute):
* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
* gst/real/gstrealvideodec.c: (open_library):
* gst/real/gstrealvideodec.h:
* gst/rtpmanager/gstrtpsession.c: (create_recv_rtp_sink),
(create_recv_rtcp_sink), (create_send_rtp_sink):
Fix compiler warnings shown by Forte.

14 years agogst/rtpmanager/gstrtpbin.c: Fix caps refcounting for payload maps.
Wim Taymans [Mon, 8 Oct 2007 10:39:35 +0000 (10:39 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix caps refcounting for payload maps.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (get_pt_map),
(gst_rtp_bin_clear_pt_map), (gst_rtp_bin_class_init):
Fix caps refcounting for payload maps.
When clearing payload maps, also clear sessions and streams payload
maps.
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps),
(gst_rtp_pt_demux_clear_pt_map), (gst_rtp_pt_demux_chain),
(find_pad_for_pt):
Implement clearing the payload map.
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_event_send_rtp_sink):
Forward flush events instead of leaking them.
* gst/rtpmanager/gstrtpssrcdemux.c:
(gst_rtp_ssrc_demux_rtcp_sink_event):
Correctly refcount events before pushing them.

14 years agogst/rtpmanager/rtpsession.c: When reconsidering RTCP timeouts, set the next timeout...
Wim Taymans [Fri, 5 Oct 2007 17:26:14 +0000 (17:26 +0000)]
gst/rtpmanager/rtpsession.c: When reconsidering RTCP timeouts, set the next timeout against the last report time inst...

Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (rtp_session_next_timeout),
When reconsidering RTCP timeouts, set the next timeout against the last
report time instead of the current clock time so that we don't end up
reconsidering forever.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Only peek at the tail element instead of popping...
Wim Taymans [Fri, 5 Oct 2007 12:07:37 +0000 (12:07 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Only peek at the tail element instead 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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Remove some old unused variables.
Wim Taymans [Tue, 2 Oct 2007 10:27:45 +0000 (10:27 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Remove some old unused variables.

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.

14 years agogst/rtpmanager/gstrtpbin.c: Fix crasher in dispose.
Wim Taymans [Fri, 28 Sep 2007 14:51:58 +0000 (14:51 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix crasher in dispose.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Remove jitter correction code, it's now in the...
Wim Taymans [Fri, 28 Sep 2007 11:17:35 +0000 (11:17 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Remove jitter correction code, it's now 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.

14 years agogst/rtpmanager/gstrtpbin.c: Fix cleanup crasher.
Wim Taymans [Wed, 26 Sep 2007 20:08:28 +0000 (20:08 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix cleanup crasher.

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.

14 years agogst/rtpmanager/: Add notification of active SSRCs to various RTP elements. Fixes...
Wim Taymans [Thu, 20 Sep 2007 14:34:57 +0000 (14:34 +0000)]
gst/rtpmanager/: Add notification of active SSRCs to various RTP elements. 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.

14 years agogst/rtpmanager/gstrtpbin.c: Link to the right pads regardless of which one was create...
Wim Taymans [Mon, 17 Sep 2007 02:01:41 +0000 (02:01 +0000)]
gst/rtpmanager/gstrtpbin.c: Link to the right pads regardless of which one was created first in the ssrc demuxer.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found):
Link to the right pads regardless of which one was created first in the
ssrc demuxer.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
(gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_send_rtp):
* gst/rtpmanager/rtpsource.c: (calculate_jitter):
Improve debugging.
* gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
(gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_finalize),
(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_rtp_ssrc_demux_internal_links):
* gst/rtpmanager/gstrtpssrcdemux.h:
Fix race in creating the RTP and RTCP pads when a new SSRC is detected.

14 years agogst/rtpmanager/gstrtpbin.c: Use lock to protect variable.
Wim Taymans [Sun, 16 Sep 2007 19:40:31 +0000 (19:40 +0000)]
gst/rtpmanager/gstrtpbin.c: Use lock to protect variable.

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.

14 years agogst/rtpmanager/gstrtpbin.c: Also set NTP base time on new sessions.
Wim Taymans [Sat, 15 Sep 2007 18:48:03 +0000 (18:48 +0000)]
gst/rtpmanager/gstrtpbin.c: Also set NTP base time on new sessions.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_session):
Also set NTP base time on new sessions.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query),
(gst_rtp_jitter_buffer_set_property),
(gst_rtp_jitter_buffer_get_property):
Use the right lock to protect our variables.
Fix some comment.
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_getcaps_send_rtp),
(gst_rtp_session_chain_send_rtp), (create_send_rtp_sink):
Implement getcaps on the sender sinkpad so that payloaders can negotiate
the right SSRC.

14 years agogst/rtpmanager/: Various leak fixes.
Wim Taymans [Wed, 12 Sep 2007 21:23:47 +0000 (21:23 +0000)]
gst/rtpmanager/: Various leak fixes.

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.

14 years agogst/rtpmanager/gstrtpbin.c: Calculate and configure the NTP base time so that we...
Wim Taymans [Wed, 12 Sep 2007 18:04:32 +0000 (18:04 +0000)]
gst/rtpmanager/gstrtpbin.c: Calculate and configure the NTP base time so that we can generate better

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (calc_ntp_ns_base),
(gst_rtp_bin_change_state), (new_payload_found), (create_send_rtp):
Calculate and configure the NTP base time so that we can generate better
NTP times in SR packets.
Set caps on new ghostpad.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_loop):
Clean debug statement.
* 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), (gst_rtp_session_event_recv_rtp_sink),
(gst_rtp_session_internal_links), (gst_rtp_session_chain_recv_rtp),
(gst_rtp_session_event_send_rtp_sink),
(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
(create_send_rtp_sink):
* gst/rtpmanager/gstrtpsession.h:
Add ntp-ns-base property to convert running_time to NTP time.
Handle NEWSEGMENT events on send and recv RTP pads so that we can
calculate the running time and thus NTP time of the packets.
Simplify getting the current NTP time using the pipeline clock.
Implement internal links functions.
Use the buffer timestamp to calculate the NTP time instead of the clock.
* gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
(gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event),
(gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_rtcp_chain),
(gst_rtp_ssrc_demux_internal_links),
(gst_rtp_ssrc_demux_src_query):
* gst/rtpmanager/gstrtpssrcdemux.h:
Implement internal links function.
Calculate the diff between different streams, this might be used later
to get the inter stream latency.
* gst/rtpmanager/rtpsession.c: (rtp_session_send_rtp):
Simple cleanup.
* gst/rtpmanager/rtpsource.c: (rtp_source_init),
(calculate_jitter), (rtp_source_send_rtp), (rtp_source_get_new_sr):
Make the clock skew window a little bigger.
Apply the clock skew to all buffers, not just one with a new timestamp.
Calculate and debug sender clock drift.
Use extended last timestamp to interpollate for SR reports.

14 years agogst/rtpmanager/gstrtpsession.c: Make compiler happy: fix compilation with -Wall ...
Tim-Philipp Müller [Tue, 4 Sep 2007 15:23:34 +0000 (15:23 +0000)]
gst/rtpmanager/gstrtpsession.c: Make compiler happy: fix compilation with -Wall -Werror (#473562).

Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
Make compiler happy: fix compilation with -Wall -Werror
(#473562).

14 years agogst/rtpmanager/: Updated example pipelines in docs.
Wim Taymans [Mon, 3 Sep 2007 21:19:34 +0000 (21:19 +0000)]
gst/rtpmanager/: Updated example pipelines in docs.

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.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Use extended timestamp to release buffers from...
Wim Taymans [Fri, 31 Aug 2007 15:26:14 +0000 (15:26 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Use extended timestamp to release buffers from the jitterbuffer so that we can h...

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_flush_stop),
(gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop):
Use extended timestamp to release buffers from the jitterbuffer so that
we can handle the rtp wraparound correctly.

14 years agogst/rtpmanager/gstrtpjitterbuffer.c: Improve Comments.
Wim Taymans [Wed, 29 Aug 2007 16:56:27 +0000 (16:56 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Improve Comments.

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_loop):
Improve Comments.
* gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread),
(gst_rtp_session_change_state), (gst_rtp_session_parse_caps),
(gst_rtp_session_clock_rate), (gst_rtp_session_sink_setcaps),
(gst_rtp_session_event_send_rtp_sink), (create_recv_rtp_sink),
(create_send_rtp_sink):
Also parse the sink caps for clock-rate instead of only relying on the
result of the signal.
* gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
Make sure we fetch the clock rate for payloads we are sending out so
that we can use it for SR reports.