1. 25 Apr, 2018 2 commits
  2. 23 Apr, 2018 2 commits
  3. 19 Apr, 2018 1 commit
    • Mathieu Duponchelle's avatar
      ulpfecdec: output perfect seqnums · 90f5ae8f
      Mathieu Duponchelle authored
      ULP FEC, as defined in RFC 5109, has the protected and protection
      packets sharing the same ssrc, and a different payload type, and
      implies rewriting the seqnums of the protected stream when encoding
      the protection packets. This has the unfortunate drawback of not
      being able to tell whether a lost packet was a protection packet.
      
      rtpbasedepayload relies on gaps in the seqnums to set the DISCONT
      flag on buffers it outputs. Before that commit, this created two
      problems:
      
      * The protection packets don't make it as far as the depayloader,
        which means it will mark buffers as DISCONT every time the previous
        packets were protected
      
      * While we could work around the previous issue by looking at
        the protection packets ignored and dropped in rtpptdemux, we
        would still mark buffers as DISCONT when a FEC packet was lost,
        as we cannot know that it was indeed a FEC packet, even though
        this should have no impact on the decoding of the stream
      
      With this commit, we consider that when using ULPFEC, gaps in
      the seqnums are not a reliable indicator of whether buffers should
      be marked as DISCONT or not, and thus rewrite the seqnums on
      the decoding side as well to form a perfect sequence, this
      obviously doesn't prevent the jitterbuffer from doing its job
      as the ulpfec decoder is downstream from it.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=794909
      90f5ae8f
  4. 17 Apr, 2018 1 commit
  5. 16 Apr, 2018 1 commit
    • Sebastian Dröge's avatar
      flacparse: Drain the parser when a CAPS event is received · 336a9715
      Sebastian Dröge authored
      After a CAPS event, in theory a new stream can start and it might start
      with the FLAC headers again. We can't detect FLAC headers in the middle
      of the stream, so we drain the parser to be able to detect either FLAC
      headers after the CAPS event or the continuation of the previous stream.
      
      This fixes for example
      
      gst-launch-1.0 audiotestsrc num-buffers=200 ! flacenc ! c. \
          audiotestsrc num-buffers=200 freq=880 ! flacenc ! c. \
          concat name=c ! rtpgstpay ! udpsink host=127.0.0.1 port=5000
      
      gst-launch-1.0 udpsrc multicast-group=127.0.0.1 port=5000 \
          caps=application/x-rtp,media=application,clock-rate=90000,encoding-name=X-GST ! \
          rtpgstdepay ! flacparse ! flacdec ! audioconvert ! pulsesin
      336a9715
  6. 13 Apr, 2018 4 commits
  7. 11 Apr, 2018 5 commits
  8. 10 Apr, 2018 1 commit
  9. 09 Apr, 2018 3 commits
  10. 06 Apr, 2018 2 commits
  11. 03 Apr, 2018 1 commit
  12. 26 Mar, 2018 1 commit
  13. 22 Mar, 2018 2 commits
  14. 21 Mar, 2018 2 commits
  15. 20 Mar, 2018 2 commits
    • Sebastian Dröge's avatar
      qtdemux: Fix seeking on streams with frame reordering · 850e6788
      Sebastian Dröge authored
      The samples table is sorted by DTS, not PTS. As such we can only get the
      correct result when using a binary search on it, if we search for the
      DTS.
      Also if we only ever search for the frame, where the following frame is
      the first one with a PTS after the search position, we will generally
      stop searching too early if frames are reordered.
      
      In forwards playback this is not really a problem (after the decoder
      reordered the frames, clipping is happening), in reverse playback
      it means that we can output one or more frames too few as we stop too
      early and the decoder would never receive it.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=782118
      850e6788
    • Sebastian Dröge's avatar
      rtp: Fix compilation with non-C99 compilers · ed2ccb1a
      Sebastian Dröge authored
      By moving variable declarations out of loop headers.
      ed2ccb1a
  16. 19 Mar, 2018 2 commits
  17. 17 Mar, 2018 3 commits
  18. 12 Mar, 2018 1 commit
  19. 01 Mar, 2018 4 commits