1. 11 Aug, 2009 40 commits
    • Olivier Crête's avatar
      gstrtpbin: Don't forward revc events to sender · 109874ed
      Olivier Crête authored
      Don't send events from the receiver to the sender side.
      Fixes #572900.
      109874ed
    • Stefan Kost's avatar
      docs: various doc fixes · 7ae3923a
      Stefan Kost authored
      No short-desc as we have them in the element details.
      Also keep things (Makefile.am and sections.txt) sorted.
      Reword ambigous returns. No text after since please.
      7ae3923a
    • Wim Taymans's avatar
      Send BYE packets immediatly for small sessions · 2c6ab341
      Wim Taymans authored
      When the number of participants is less than 50, the RFC allows for sending the
      BYE packet immediatly instead of using the regular BYE timeout.
      Fixes #567828.
      2c6ab341
    • Wim Taymans's avatar
      Unlock the jitterbuffer before pushing out the packet-lost events. · 7f0b100d
      Wim Taymans authored
      Move some code before we do the unlock to make the jitterbuffer state
      consistent while we are unlocked.
      7f0b100d
    • Olivier Crête's avatar
      gst/rtpmanager/: When an SSRC is found on the caps of the sender RTP, use this... · dfdc9b66
      Olivier Crête authored
      gst/rtpmanager/: When an SSRC is found on the caps of the sender RTP, use this as the internal SSRC. Fixes #565910.
      
      Original commit message from CVS:
      Patch by: Olivier Crete <tester at tester dot ca>
      * gst/rtpmanager/gstrtpsession.c:
      (gst_rtp_session_setcaps_send_rtp), (create_send_rtp_sink):
      * gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
      When an SSRC is found on the caps of the sender RTP, use this as the
      internal SSRC. Fixes #565910.
      dfdc9b66
    • Wim Taymans's avatar
      gst/rtpmanager/: Rename a method to better reflect what it really does. · 0ad92e7d
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpsession.c:
      (gst_rtp_session_event_send_rtp_sink),
      (gst_rtp_session_getcaps_send_rtp):
      * gst/rtpmanager/rtpsession.c: (check_collision),
      (rtp_session_schedule_bye_locked), (rtp_session_schedule_bye):
      * gst/rtpmanager/rtpsession.h:
      Rename a method to better reflect what it really does.
      0ad92e7d
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.c: Use method to get the internal SSRC. · 06d15320
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpsession.c:
      (gst_rtp_session_getcaps_send_rtp):
      Use method to get the internal SSRC.
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (rtp_session_set_property), (rtp_session_get_property):
      Add property to congiure the internal SSRC of the session.
      Fixes #565910.
      06d15320
    • Wim Taymans's avatar
      gst/rtpmanager/rtpsession.c: Only change the SSRC of the session and reset the... · 1786eb1e
      Wim Taymans authored
      gst/rtpmanager/rtpsession.c: Only change the SSRC of the session and reset the internal source when the SSRC actually...
      
      Original commit message from CVS:
      * gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
      Only change the SSRC of the session and reset the internal source when
      the SSRC actually changed. See #565910.
      1786eb1e
    • Wim Taymans's avatar
      gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but... · 3fe87f7e
      Wim Taymans authored
      gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but there was a clock-rate, assume the clock-ra...
      
      Original commit message from CVS:
      * gst/rtpmanager/rtpsource.c: (rtp_source_init),
      (rtp_source_update_caps), (get_clock_rate):
      * gst/rtpmanager/rtpsource.h:
      When no payload was specified on the caps but there was a clock-rate,
      assume the clock-rate corresponds to the first payload type found in the
      RTP packets. Fixes #565509.
      3fe87f7e
    • arnout's avatar
      gst/rtpmanager/rtpjitterbuffer.*: Keep track of the last outgoing timestamp... · 2142edd3
      arnout authored
      gst/rtpmanager/rtpjitterbuffer.*: Keep track of the last outgoing timestamp and of the last sender-side time.  Timest...
      
      Original commit message from CVS:
      Patch by: Arnout Vandecappelle <arnout at mind dot be>
      * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
      (calculate_skew):
      * gst/rtpmanager/rtpjitterbuffer.h:
      Keep track of the last outgoing timestamp and of the last sender-side
      time.  Timestamps can only go forward if they do at the sender
      side, can only go back if they do at the sender side, and remain the
      same if they remain the same at the sender side. Fixes #565319.
      2142edd3
    • Wim Taymans's avatar
      gst/rtpmanager/rtpsession.c: Make obtain_source return an aditional ref so... · 5b6700a0
      Wim Taymans authored
      gst/rtpmanager/rtpsession.c: Make obtain_source return an aditional ref so that we don't lose our ref to it when a se...
      
      Original commit message from CVS:
      * gst/rtpmanager/rtpsession.c: (obtain_source),
      (rtp_session_create_source), (rtp_session_process_rtp),
      (rtp_session_process_sr), (rtp_session_process_rr),
      (rtp_session_process_sdes), (rtp_session_process_bye):
      Make obtain_source return an aditional ref so that we don't lose our ref
      to it when a session cleanup occurs when we are emiting a signal.
      Emit the on_new_ssrc signal for the CSRC, not the SSRC.
      Fixes #562319.
      5b6700a0
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Reset the sync parameters when clearing the payload type map too. · a80f7dc1
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_reset_sync),
      (gst_rtp_bin_clear_pt_map):
      Reset the sync parameters when clearing the payload type map too.
      Fixes #562312.
      a80f7dc1
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.*: Remove a lot of per stream state that is not... · a2d7487e
      Wim Taymans authored
      gst/rtpmanager/gstrtpbin.*: Remove a lot of per stream state that is not needed and pass new info in the method call.
      
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpbin.c: (get_client),
      (gst_rtp_bin_reset_sync), (gst_rtp_bin_associate),
      (gst_rtp_bin_handle_sync), (create_stream),
      (gst_rtp_bin_class_init), (new_ssrc_pad_found):
      * gst/rtpmanager/gstrtpbin.h:
      Remove a lot of per stream state that is not needed and pass new info in
      the method call.
      Add signal to reset sync parameters.
      Avoid parsing the caps to get a clock_base, we get this from the sync
      signal now.
      a2d7487e
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.c: Fix event leak. · b8408946
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpsession.c:
      (gst_rtp_session_event_send_rtcp_src):
      Fix event leak.
      b8408946
    • Wim Taymans's avatar
      gst/rtpmanager/rtpsession.c: Add property to configure the RTCP MTU. · ae346d9a
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (rtp_session_init), (rtp_session_set_property),
      (rtp_session_get_property):
      Add property to configure the RTCP MTU.
      ae346d9a
    • Wim Taymans's avatar
      gst/rtpmanager/rtpsession.c: Add G_PARAM_STATIC_STRINGS. · 55bb4d5c
      Wim Taymans authored
      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.
      55bb4d5c
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Also unref the target pad for unknown pads. · c84ffd84
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
      Also unref the target pad for unknown pads.
      c84ffd84
    • Olivier Crête's avatar
      gst/rtpmanager/gstrtpbin.c: Release the right pads on rtpbin. Fixes #561752. · 75580396
      Olivier Crête authored
      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.
      75580396
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.c: Pass the running time to the session when processing RTP packets. · 2f5b130a
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpsession.c: (get_current_times),
      (rtcp_thread), (gst_rtp_session_chain_recv_rtp):
      Pass the running time to the session when processing RTP packets.
      Improve the time function to provide more info.
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (rtp_session_init), (update_arrival_stats),
      (rtp_session_process_rtp), (rtp_session_process_sdes),
      (rtp_session_process_rtcp), (session_start_rtcp),
      (rtp_session_on_timeout):
      * gst/rtpmanager/rtpsession.h:
      Mark the internal source with a flag.
      Use running_time instead of the more useless timestamp.
      Validate a source when a valid SDES has been received.
      Pass the current system time when processing SR packets.
      * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
      (rtp_source_init), (rtp_source_create_stats),
      (rtp_source_get_property), (rtp_source_send_rtp),
      (rtp_source_process_rb), (rtp_source_get_new_rb),
      (rtp_source_get_last_rb):
      * gst/rtpmanager/rtpsource.h:
      Add property to get source stats.
      Mark params as STATIC_STRINGS.
      Calculate the bitrate at the sender SSRC.
      Avoid negative values in the round trip time calculations.
      * gst/rtpmanager/rtpstats.h:
      Update some docs and change some variable name to more closely reflect
      what it contains.
      2f5b130a
    • Sebastian Dröge's avatar
      gst/rtpmanager/gstrtpjitterbuffer.c: Initialize return value to fix compiler... · e51423aa
      Sebastian Dröge authored
      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.
      e51423aa
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpjitterbuffer.c: Mark signal arg as static scope. · d0ada612
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpjitterbuffer.c:
      (gst_rtp_jitter_buffer_class_init):
      Mark signal arg as static scope.
      d0ada612
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Remove internal sync pad, use signals instead to... · 592c3f22
      Wim Taymans authored
      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.
      592c3f22
    • Sebastian Dröge's avatar
      gst/rtpmanager/rtpsource.c: Fix GST_DEBUG call to only have as many arguments... · c3645239
      Sebastian Dröge authored
      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.
      c3645239
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Do not try to keep track of the clock-rate... · 5ab3e105
      Wim Taymans authored
      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.
      5ab3e105
    • Wim Taymans's avatar
      gst/rtpmanager/: Small cleanups and some more debug info. · 1656fad9
      Wim Taymans authored
      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.
      1656fad9
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpjitterbuffer.c: Also configure the next expected output... · 6485d60a
      Wim Taymans authored
      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.
      6485d60a
    • Stefan Kost's avatar
      Don't install static libs for plugins. Fixes #550851 for -bad. · b8352968
      Stefan Kost authored
      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.
      b8352968
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output seqnum... · eaa23fd4
      Wim Taymans authored
      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.
      eaa23fd4
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.c: Install event handler on the rtcp_src pad,... · 3563bbaa
      Wim Taymans authored
      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.
      3563bbaa
    • Håvard Graff's avatar
      gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal. · 3bebd53b
      Håvard Graff authored
      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.
      3bebd53b
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Release pads of the session manager. · bd8f4b6c
      Wim Taymans authored
      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.
      bd8f4b6c
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was... · 45538637
      Wim Taymans authored
      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.
      45538637
    • Wim Taymans's avatar
      gst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the... · 55b7860c
      Wim Taymans authored
      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.
      55b7860c
    • Wim Taymans's avatar
      gst/rtpmanager/: Fix some docs. · c2c69bfb
      Wim Taymans authored
      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.
      c2c69bfb
    • Jan Schmidt's avatar
      Fix compiler warnings on OS/X · a2b86bbc
      Jan Schmidt authored
      Original commit message from CVS:
      * ext/jack/gstjackaudiosink.c: (jack_process_cb):
      * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
      Fix compiler warnings on OS/X
      a2b86bbc
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for... · 5e98fa57
      Wim Taymans authored
      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.
      5e98fa57
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender becomes a receiver. · 85e26f65
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/gstrtpbin.c: (on_sender_timeout),
      (create_session), (gst_rtp_bin_associate),
      (gst_rtp_bin_sync_chain), (gst_rtp_bin_class_init),
      (gst_rtp_bin_request_new_pad):
      * gst/rtpmanager/gstrtpbin.h:
      Add signal to notify listeners when a sender becomes a receiver.
      Tweak lip-sync code, don't store our own copy of the ts-offset of the
      jitterbuffer, don't adjust sync if the change is less than 4msec.
      Get the RTP timestamp <-> GStreamer timestamp relation directly from
      the jitterbuffer instead of our inaccurate version from the source.
      * gst/rtpmanager/gstrtpjitterbuffer.c:
      (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
      (gst_rtp_jitter_buffer_get_sync):
      * gst/rtpmanager/gstrtpjitterbuffer.h:
      Add G_LIKELY macros, use global defines for max packet reorder and
      dropouts.
      Reset the jitterbuffer clock skew detection when packets seqnums are
      changed unexpectedly.
      * gst/rtpmanager/gstrtpsession.c: (on_sender_timeout),
      (gst_rtp_session_class_init), (gst_rtp_session_init):
      * gst/rtpmanager/gstrtpsession.h:
      Add sender timeout signal.
      * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
      (calculate_skew), (rtp_jitter_buffer_insert),
      (rtp_jitter_buffer_get_sync):
      * gst/rtpmanager/rtpjitterbuffer.h:
      Add some G_LIKELY macros.
      Keep track of the extended RTP timestamp so that we can report the RTP
      timestamp <-> GStreamer timestamp relation for lip-sync.
      Remove server timestamp gap detection code, the server can sometimes
      make a huge gap in timestamps (talk spurts,...) see #549774.
      Detect timetamp weirdness instead by observing the sender/receiver
      timestamp relation and resync if it changes more than 1 second.
      Add method to report about the current rtp <-> gst timestamp relation
      which is needed for lip-sync.
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (on_sender_timeout), (check_collision), (rtp_session_process_sr),
      (session_cleanup):
      * gst/rtpmanager/rtpsession.h:
      Add sender timeout signal.
      Remove inaccurate rtp <-> gst timestamp relation code, the
      jitterbuffer can now do an accurate reporting about this.
      * gst/rtpmanager/rtpsource.c: (rtp_source_init),
      (rtp_source_update_caps), (calculate_jitter),
      (rtp_source_process_rtp):
      * gst/rtpmanager/rtpsource.h:
      Remove inaccurate rtp <-> gst timestamp relation code.
      * gst/rtpmanager/rtpstats.h:
      Define global max-reorder and max-dropout constants for use in various
      subsystems.
      85e26f65
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpsession.c: Send EOS when the session object instructs us to. · 5c89bb2a
      Wim Taymans authored
      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.
      5c89bb2a
    • Wim Taymans's avatar
      gst/rtpmanager/gstrtpbin.c: Reset rtp timestamp interpollation when we detect... · 62ecaee7
      Wim Taymans authored
      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.
      62ecaee7
    • Stefan Kost's avatar
      gst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log. · cc74738d
      Stefan Kost authored
      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?
      cc74738d