mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 00:06:36 +00:00
90f5ae8f45
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 |
||
---|---|---|
.. | ||
alpha | ||
apetag | ||
audiofx | ||
audioparsers | ||
auparse | ||
autodetect | ||
avi | ||
cutter | ||
debugutils | ||
deinterlace | ||
dtmf | ||
effectv | ||
equalizer | ||
flv | ||
flx | ||
goom | ||
goom2k1 | ||
icydemux | ||
id3demux | ||
imagefreeze | ||
interleave | ||
isomp4 | ||
law | ||
level | ||
matroska | ||
monoscope | ||
multifile | ||
multipart | ||
replaygain | ||
rtp | ||
rtpmanager | ||
rtsp | ||
shapewipe | ||
smpte | ||
spectrum | ||
udp | ||
videobox | ||
videocrop | ||
videofilter | ||
videomixer | ||
wavenc | ||
wavparse | ||
y4m | ||
Makefile.am | ||
meson.build |