Skip to content
Snippets Groups Projects
  1. Jun 25, 2020
  2. Jun 24, 2020
  3. Jun 23, 2020
  4. Jun 21, 2020
  5. Jun 20, 2020
  6. Jun 19, 2020
  7. Jun 18, 2020
  8. Jun 17, 2020
  9. Jun 16, 2020
  10. Jun 12, 2020
  11. Jun 11, 2020
  12. Jun 10, 2020
  13. Jun 09, 2020
  14. Jun 08, 2020
    • Nicolas Dufresne's avatar
      rtptimerqueue: Fix leak on timer collision · 5b2ad315
      Nicolas Dufresne authored
      While the caller should make sure this does not happen, make sure timer
      collision are not silently ignored and leaked.
      
      Fixes #726
      
      Part-of: <gstreamer/gst-plugins-good!616>
      5b2ad315
    • Nicolas Dufresne's avatar
      rtpjitterbuffer: Keep JBUF lock while processing timers · b4f421e9
      Nicolas Dufresne authored
      Until now, do_expected_timeout() was shortly dropping the JBUF_LOCK in order
      to push RTX event event without causing deadlock. As a side effect, some
      CPU hung would happen as the timerqueue would get filled while looping over
      the due timers. To mitigate this, we were processing the lost timer first and
      placing into a queue the remainign to be processed later.
      
      In the gap caused by an unlock, we could endup receiving one of the seqnum
      present in the pending timers. In that case, the timer would not be found and
      a new one was created. When we then update the expected timer, the seqnum
      would already exist and the updated timer would be lost.
      
      In this patch we remove the unlock from do_expected_timeout() and place all
      pending RTX event into a queue (instead of pending timer). Then, as soon as
      we have selected a timer to wait (or if there is no timer to wait for) we send
      all the upstream RTX events. As we no longer unlock, we no longer need to pop
      more then one timer from the queue, and we do so with the lock held, which
      blocks any new colliding timers from being created.
      
      Part-of: <gstreamer/gst-plugins-good!616>
      b4f421e9
Loading