Skip to content
Snippets Groups Projects
  1. May 26, 2020
  2. May 22, 2020
  3. May 20, 2020
  4. May 15, 2020
  5. May 13, 2020
  6. May 11, 2020
  7. May 08, 2020
  8. May 06, 2020
  9. May 05, 2020
  10. Apr 27, 2020
  11. Apr 22, 2020
  12. Apr 20, 2020
    • Seungha Yang's avatar
      tests: splitmuxsink: Add more timecode based split test · ea1797cc
      Seungha Yang authored
      ... and split test cases to run tests in parallel
      ea1797cc
    • Seungha Yang's avatar
      splitmuxsink: Enhancement for timecode based split · ca48f526
      Seungha Yang authored
      The calculated threshold for timecode might be varying depending on
      "max-size-timecode" and framerate.
      For instance, with framerate 29.97 (30000/1001) and
      "max-size-timecode=00:02:00;02", every fragment will have identical
      number of frames 3598. However, when "max-size-timecode=00:02:00;00",
      calculated next keyframe via gst_video_time_code_add_interval()
      can be different per fragment, but this is the nature of timecode.
      To compensate such timecode drift, we should keep track of expected
      timecode of next fragment based on observed timecode.
      ca48f526
  13. Apr 19, 2020
  14. Apr 16, 2020
    • Håvard Graff's avatar
      rtpjitterbuffer: don't use RTX packets in rate-calc and reset-logic · 981d0c02
      Håvard Graff authored
      The problem was this:
      
      Due to the highly irregular arrival of RTX-packet the max-misorder variable
      could be pushed very low. (-10).
      
      If you then at some point get a big in the sequence-numbers (62 in the
      test) you end up sending RTX-requests for some of those packets, and then
      if the sender answers those requests, you are going to get a bunch of
      RTX-packets arriving. (-13 and then 5 more packets in the test)
      
      Now, if max-misorder is pushed very low at this point, these RTX-packets
      will trigger the handle_big_gap_buffer() logic, and because they arriving
      so neatly in order, (as they would, since they have been requested like
      that), the gst_rtp_jitter_buffer_reset() will be called, and two things
      will happen:
      1. priv->next_seqnum will be set to the first RTX packet
      2. the 5 RTX-packet will be pushed into the chain() function
      
      However, at this point, these RTX-packets are no longer valid, the
      jitterbuffer has already pushed lost-events for these, so they will now
      be dropped on the floor, and never make it to the waiting loop-function.
      
      And, since we now have a priv->next_seqnum that will never arrive
      in the loop-function, the jitterbuffer is now stalled forever, and will
      not push out another buffer.
      
      The proposed fixes:
      1. Don't use RTX in calculation of the packet-rate.
      2. Don't use RTX in large-gap logic, as they are likely to be dropped.
      981d0c02
Loading