gstreamer/gst
Mathieu Duponchelle 90f5ae8f45 ulpfecdec: output perfect seqnums
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
2018-04-19 18:17:39 +02:00
..
alpha Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
apetag Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
audiofx Update ORC files 2018-02-09 09:00:46 +01:00
audioparsers flacparse: Drain the parser when a CAPS event is received 2018-04-16 21:29:57 +03:00
auparse Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
autodetect Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
avi avidemux: provide average bitrate tag 2017-07-09 10:55:00 +02:00
cutter Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
debugutils Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
deinterlace Update ORC files 2018-02-09 09:00:46 +01:00
dtmf Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
effectv Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
equalizer equalizer: Fix -Wincompatible-pointer-types warning 2017-12-11 21:57:25 +00:00
flv flvmux: unref return of aggregator_pad_peek_buffer 2018-04-13 23:01:20 +02:00
flx Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
goom Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
goom2k1 goom2k1: Convert source files to UTF-8 2017-08-16 13:07:45 +01:00
icydemux Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
id3demux Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
imagefreeze imagefreeze: fix use-after-free on seek event 2017-07-03 20:43:12 +01:00
interleave interleave: fix memory leak of GAP buffers 2018-01-31 15:16:46 +00:00
isomp4 qtmux: Fix leak 2018-04-13 22:49:43 +02:00
law mulawdec: Unmap input buffer if failing to map the output buffer 2017-07-27 14:23:14 +03:00
level Use proper GtkDoc notation for NULL/FALSE/TRUE 2017-10-03 16:30:10 -07:00
matroska matroskademux: Add comment about Opus clipping 2018-04-13 09:50:35 +01:00
monoscope monoscope: Only fixate pixel-aspect-ratio if the field exists 2018-04-11 21:42:16 +02:00
multifile splitmuxsink: Don't send fragment-opened-closed message if the reference ctx is NULL 2018-04-11 17:59:21 +03:00
multipart Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
replaygain rganalysis: Fix left shift of signed values 2017-11-23 07:59:07 +01:00
rtp ulpfecdec: output perfect seqnums 2018-04-19 18:17:39 +02:00
rtpmanager rtxsend: fix wrong memory layout assumption 2018-04-06 20:25:04 +02:00
rtsp Revert "rtspsrc: Fix up sendonly/recvonly attribute handling" 2018-04-17 17:58:01 +03:00
shapewipe Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
smpte Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
spectrum Use proper GtkDoc notation for NULL/FALSE/TRUE 2017-10-03 16:30:10 -07:00
udp udpsrc: switch to using a buffer pool 2018-03-21 17:47:27 -04:00
videobox Update ORC files 2018-02-09 09:00:46 +01:00
videocrop videocrop: Add GstVideoCropMeta support 2017-12-17 15:39:53 -05:00
videofilter Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
videomixer Update ORC files 2018-02-09 09:00:46 +01:00
wavenc Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
wavparse wavparse: Add support for growing WAV files 2017-08-14 16:02:35 +03:00
y4m Remove plugin specific static build option 2017-05-16 14:41:19 -04:00
Makefile.am build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00
meson.build Add support for Meson as alternative/parallel build system 2016-08-20 11:21:12 +01:00