1. 29 Aug, 2017 2 commits
  2. 11 Aug, 2017 1 commit
  3. 05 Jul, 2017 1 commit
  4. 04 Jul, 2017 2 commits
  5. 29 Jun, 2017 1 commit
  6. 28 Jun, 2017 1 commit
  7. 31 May, 2017 1 commit
  8. 16 May, 2017 1 commit
  9. 19 Apr, 2017 1 commit
  10. 11 Apr, 2017 1 commit
  11. 24 Mar, 2017 1 commit
  12. 20 Mar, 2017 1 commit
  13. 17 Mar, 2017 1 commit
  14. 16 Mar, 2017 4 commits
  15. 01 Mar, 2017 1 commit
  16. 26 Feb, 2017 1 commit
    • Andrew's avatar
      rtpjitterbuffer: Don't always reset PTS to 0 after a gap · 76792a5c
      Andrew authored
      In function rtp_jitter_buffer_calculate_pts: If gap in incoming RTP
      timestamps is more than (3 * jbuf->clock_rate) we call
      rtp_jitter_buffer_reset_skew which resets pts to 0. So components down
      the pipeline (playes, mixers) just skip frames/samples until pts becomes
      equal to pts before gap.
      In version 1.10.2 and before this checking was bypassed for packets with
      "estimated dts", and gaps were handled correctly.
  17. 02 Feb, 2017 1 commit
  18. 24 Jan, 2017 1 commit
  19. 12 Jan, 2017 1 commit
  20. 09 Jan, 2017 1 commit
  21. 14 Dec, 2016 1 commit
  22. 02 Dec, 2016 1 commit
    • Edward Hervey's avatar
      jitterbuffer: Don't leak duplicate items · e5158ca4
      Edward Hervey authored
      When providing items with a seqnum, there is a (very small) probability
      that an element with the same seqnum already exists. Don't forget
      to free that item if it wasn't inserted.
      And avoid returning undefined values when dealing with duplicate items
  23. 27 Nov, 2016 1 commit
  24. 23 Nov, 2016 1 commit
  25. 18 Nov, 2016 1 commit
  26. 16 Nov, 2016 1 commit
  27. 04 Nov, 2016 3 commits
    • Havard Graff's avatar
      rtpjitterbuffer: fix timer-reuse bug · 1a4393fb
      Havard Graff authored
      When doing rtx, the jitterbuffer will always add an rtx-timer for the next
      sequence number.
      In the case of the packet corresponding to that sequence number arriving,
      that same timer will be reused, and simply moved on to wait for the
      following sequence number etc.
      Once an rtx-timer expires (after all retries), it will be rescheduled as
      a lost-timer instead for the same sequence number.
      Now, if this particular sequence-number now arrives (after the timer has
      become a lost-timer), the reuse mechanism *should* now set a new
      rtx-timer for the next sequence number, but the bug is that it does
      not change the timer-type, and hence schedules a lost-timer for that
      following sequence number, with the result that you will have a very
      early lost-event for a packet that might still arrive, and you will
      never be able to send any rtx for this packet.
      Found by Erlend Graff - erlend@pexip.com
    • Havard Graff's avatar
      rtpjitterbuffer: fix lost-event using dts instead of pts · fb9c75db
      Havard Graff authored
      The lost-event was using a different time-domain (dts) than the outgoing
      buffers (pts). Given certain network-conditions these two would become
      sufficiently different and the lost-event contained timestamp/duration
      that was really wrong. As an example GstAudioDecoder could produce
      a stream that jumps back and forth in time after receiving a lost-event.
      The previous behavior calculated the pts (based on the rtptime) inside the
      rtp_jitter_buffer_insert function, but now this functionality has been
      refactored into a new function rtp_jitter_buffer_calculate_pts that is
      called much earlier in the _chain function to make pts available to
      various calculations that wrongly used dts previously
      (like the lost-event).
      There are however two calculations where using dts is the right thing to
      do: calculating the receive-jitter and the rtx-round-trip-time, where the
      arrival time of the buffer from the network is the right metric
      (and is what dts in fact is today).
      The patch also adds two tests regarding B-frames or the
      “rtptime-going-backwards”-scenario, as there were some concerns that this
      patch might break this behavior (which the tests shows it does not).
    • Havard Graff's avatar
      rtpjitterbuffer: fix bug in reschedule_timer · bea35f97
      Havard Graff authored
      The new timeout is always going to be (timeout + delay), however, the
      old behavior compared the current timeout to just (timeout), basically
      being (delay) off.
      This would happen if rtx-delay == rtx-retry-timeout, with the result that
      a second rtx attempt for any buffers would be scheduled immediately instead
      of after rtx-delay ms.
      Simply calculate (new_timeout = timeout + delay) and then use that instead.
  28. 01 Nov, 2016 2 commits
  29. 15 Sep, 2016 1 commit
  30. 14 Sep, 2016 3 commits