1. 11 Aug, 2009 40 commits
    • Wim Taymans's avatar
      rtpbin: set target state on new elements · 1719af91
      Wim Taymans authored
      Set the state on newly added elements to the state of the parent.
      Add some debug info and do some cleanups
      1719af91
    • Wim Taymans's avatar
      rtpbin: unref requests pads after releasing · 9c92ee62
      Wim Taymans authored
      9c92ee62
    • Olivier Crête's avatar
      rtpbin: Implement releasing the streams · a1c0bb24
      Olivier Crête authored
      See #561752
      a1c0bb24
    • Olivier Crête's avatar
      rtpbin: Keep jb signals handler · e77542d3
      Olivier Crête authored
      Keep the signal handlers so they can be disconnected at release time
      
      See #561752
      e77542d3
    • Wim Taymans's avatar
      rtpbin: use the right lock for the sessions · 59d0590c
      Wim Taymans authored
      Use the right lock when iterating the sessions.
      59d0590c
    • Olivier Crête's avatar
      rtpbin: Free session if request pads are released · a9d6f355
      Olivier Crête authored
      Free the session when all the request pads are released.
      Don't mess with the session list in free_session as it is called from a foreach
      on that list.
      Set the state of the upstream element to NULL first.
      
      See #561752
      a9d6f355
    • Olivier Crête's avatar
      46388b76
    • Olivier Crête's avatar
      35090984
    • Olivier Crête's avatar
      rtpbin: Implement release of the recv rtcp pad · 2f6e9d7b
      Olivier Crête authored
      See #561752
      2f6e9d7b
    • Olivier Crête's avatar
      rtpbin: Implement releasing of rtcp src pad · 47d4bb90
      Olivier Crête authored
      See #561752
      47d4bb90
    • Wim Taymans's avatar
      rtpssrcdemux: drop unexpected RTCP packets · 11607c4d
      Wim Taymans authored
      We usually only get SR packets in our chain function but if an invalid packet
      contains the SR packet after the RR packet, we must not fail but simply ignore
      the malformed packet.
      
      Fixes #581375
      11607c4d
    • Olivier Crête's avatar
      rtpsouce: make WARNING into LOG · 3482b476
      Olivier Crête authored
      Since neither rtpmanager nor any of the payloaders properly implement
      pad allocation, there is no way for the rtpmanager to inform downstream elements
      of the new SSRC if there is an SSRC collision. So the warning is emitted all the
      time and it is confusing.
      
      Fixes #580144
      3482b476
    • Olivier Crête's avatar
      rtpsession: notify when SSRC changes · 63636b12
      Olivier Crête authored
      Emit a g_object_notify when the SSRc changes because of a collision.
      Fixes #580144
      63636b12
    • Wim Taymans's avatar
      rtpsession: join the RTCP thread · d45d18c7
      Wim Taymans authored
      Avoid a case where a joinable thread would be left unjoined, which leaked the
      thread structure.
      Fixes #577318.
      d45d18c7
    • Wim Taymans's avatar
      jitterbuffer: prevent overflow in EOS estimation · 64046416
      Wim Taymans authored
      Use a guint64 instead of a guint to hold a 64bit value to prevent completely
      bogues EOS estimation values due to overflows.
      64046416
    • Wim Taymans's avatar
      rtpbin: we should not provide a clock · d6c623e9
      Wim Taymans authored
      There is no need to provide a clock.
      d6c623e9
    • Wim Taymans's avatar
      jitterbuffer: more estimated EOS fixes · 5ece6ae4
      Wim Taymans authored
      Do more accurate EOS estimate and guard against backward timestamps.
      5ece6ae4
    • Wim Taymans's avatar
      jitterbuffer: release lock before pushing EOS · cbad8960
      Wim Taymans authored
      Make sure we release the jitterbuffer lock before we start pushing out data
      because else we might deadlock.
      cbad8960
    • Wim Taymans's avatar
      rtpbin: add on_npt_stop signal · 918c9448
      Wim Taymans authored
      Add the on_npt_stop signal to rtpbin and rtpjitterbuffer to notify the
      application that the NPT stop position has been reached.
      918c9448
    • Wim Taymans's avatar
      rtpbin: don't return FALSE on seek events · 55c3da71
      Wim Taymans authored
      Silently ignore the seek event instead of returning FALSE.
      55c3da71
    • 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