1. 28 Jun, 2017 1 commit
  2. 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.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=778341
      76792a5c
  3. 09 Jan, 2017 1 commit
  4. 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
      e5158ca4
  5. 04 Nov, 2016 1 commit
    • 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).
      fb9c75db
  6. 10 Aug, 2016 1 commit
  7. 15 Apr, 2016 1 commit
  8. 12 Apr, 2016 1 commit
  9. 03 Apr, 2016 1 commit
  10. 18 Jan, 2016 2 commits
  11. 22 Jun, 2015 1 commit
  12. 15 Jun, 2015 1 commit
  13. 13 Apr, 2015 1 commit
  14. 21 Oct, 2014 1 commit
    • Wim Taymans's avatar
      jitterbuffer: rework resync handling · 2e7f5c08
      Wim Taymans authored
      Add a need-resync state, this is when we need to try to lock on to a
      time/RTPtime pair.
      Always check the RTP timestamps and if they go backwards, mark ourselves
      as need-resync.
      Only resync when need-resync is TRUE and we have a valid time. Otherwise
      we keep the old values. This avoids locking on to an invalid time and
      causing us to timestamp everything with -1.
      
      Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730417
      2e7f5c08
  15. 04 Oct, 2014 1 commit
  16. 14 May, 2014 1 commit
  17. 29 Apr, 2014 1 commit
    • Wim Taymans's avatar
      rtpjitterbuffer: rework packet insert · 18b69419
      Wim Taymans authored
      Rework the packet queue so that the most common action (insert a packet
      at the tail of the queue) goes very fast.
      
      Report if a packet was inserted at the head instead of the tail so that
      we can know when to retry _pop or _peek.
      18b69419
  18. 18 Apr, 2014 1 commit
    • Wim Taymans's avatar
      jitterbuffer: improve EOS handling · 3e11ce43
      Wim Taymans authored
      Make a new method to disable the jitterbuffer buffering.
      Rework the update_estimated_eos() method. Calculate how much time
      there is left to play. If we have less than the delay of the
      jitterbuffer, we disabled buffering because we might never be able to
      fill the complete jitterbuffer again.
      If we receive an EOS event, disable buffering. We will drain the
      buffer and eventually push the EOS event out.
      When we reach the estimated NPT timeout and we didn't receive an EOS
      event, make one and queue it so that it can be pushed.
      
      Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728017
      3e11ce43
  19. 03 Mar, 2014 1 commit
  20. 10 Dec, 2013 1 commit
  21. 09 Dec, 2013 1 commit
  22. 19 Nov, 2013 1 commit
  23. 31 Oct, 2013 1 commit
    • Wim Taymans's avatar
      jitterbuffer: add new timestamp mode · 43645d59
      Wim Taymans authored
      Add a new timestamp mode that assumes the local and remote clock are
      synchronized. It takes the first timestamp as a base time and then uses the RTP
      timestamps for the output PTS.
      43645d59
  24. 30 Sep, 2013 1 commit
  25. 26 Sep, 2013 1 commit
  26. 23 Sep, 2013 5 commits
  27. 01 Aug, 2013 1 commit
    • Wim Taymans's avatar
      jitterbuffer: operate on DTS · f8641312
      Wim Taymans authored
      Make the jitterbuffer schedule the timeouts based on the DTS instead
      of the PTS. This makes it all smoother with reordered frames and gives
      the decoder time to reorder the frames in time.
      f8641312
  28. 30 Jul, 2013 1 commit
  29. 07 Feb, 2013 1 commit
  30. 06 Feb, 2013 1 commit
  31. 04 Nov, 2012 1 commit
  32. 17 Oct, 2012 1 commit
  33. 05 Dec, 2011 1 commit
  34. 19 Sep, 2011 2 commits