gstreamer/gst
Matthew Waters ea61714c70 rtph26*depay: drop FU's without a corresponding start bit
If we have not received a FU with a start bit set, any subsequent FU
data is not useful at all and would result in an invalid stream.

This case is constructed from multiple requirements in
RFC 3984 Section 5.8 and RFC 7798 Section 4.4.3.  Following are excerpts
from RFC 3984 but RFC 7798 contains similar language.

The FU in a single FU case is forbidden:

   A fragmented NAL unit MUST NOT be transmitted in one FU; i.e., the
   Start bit and End bit MUST NOT both be set to one in the same FU
   header.

and dropping is possible:

   If a fragmentation unit is lost, the receiver SHOULD discard all
   following fragmentation units in transmission order corresponding to
   the same fragmented NAL unit.

The jump in seqnum case is supported by this from the specification
instead of implementing the forbidden_zero_bit mangling:

   If a fragmentation unit is lost, the receiver SHOULD discard all
   following fragmentation units in transmission order corresponding to
   the same fragmented NAL unit.

   A receiver in an endpoint or in a MANE MAY aggregate the first n-1
   fragments of a NAL unit to an (incomplete) NAL unit, even if fragment
   n of that NAL unit is not received.  In this case, the
   forbidden_zero_bit of the NAL unit MUST be set to one to indicate a
   syntax violation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/730>
2020-09-21 08:08:38 +00:00
..
alpha plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:42:25 +02:00
apetag Remove autotools build system 2019-10-14 11:04:18 +01:00
audiofx meson: add update-orc-dist target 2020-07-04 15:04:59 +01:00
audioparsers mpegaudioparse: Use a constant bit rate to convert between time and bytes if possible. 2020-03-19 14:02:44 +00:00
auparse auparse: fix compiler warnings 2020-07-29 19:21:31 +03:00
autodetect autodetect: mark filter-caps property as DOC_SHOW_DEFAULT 2020-06-24 17:04:51 +02:00
avi avidemux: Avoid potential double-free 2020-05-06 04:36:46 +00:00
cutter Remove autotools build system 2019-10-14 11:04:18 +01:00
debugutils good: Avoid usage of deprecated API 2019-10-16 07:46:58 +00:00
deinterlace meson: add update-orc-dist target 2020-07-04 15:04:59 +01:00
dtmf Remove autotools build system 2019-10-14 11:04:18 +01:00
effectv plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:42:25 +02:00
equalizer docs: mark GstIirEqualizer as plugin API 2020-06-23 19:04:03 +02:00
flv flvmux: Improve logging of gst_flv_mux_buffer_to_tag_internal 2020-09-10 09:20:46 +00:00
flx Remove autotools build system 2019-10-14 11:04:18 +01:00
goom Remove autotools build system 2019-10-14 11:04:18 +01:00
goom2k1 Remove autotools build system 2019-10-14 11:04:18 +01:00
icydemux Remove autotools build system 2019-10-14 11:04:18 +01:00
id3demux Remove autotools build system 2019-10-14 11:04:18 +01:00
imagefreeze imagefreeze: Response caps query from srcpad 2020-09-21 10:28:01 +03:00
interleave Remove autotools build system 2019-10-14 11:04:18 +01:00
isomp4 qtmux: make documentation happy 2020-09-21 12:09:09 +10:00
law Remove autotools build system 2019-10-14 11:04:18 +01:00
level Remove autotools build system 2019-10-14 11:04:18 +01:00
matroska gst: Update for gst_video_transfer_function_*() function renaming 2020-09-07 12:13:18 +03:00
monoscope Remove autotools build system 2019-10-14 11:04:18 +01:00
multifile splitmuxsrc: Implement segment query 2020-09-18 10:54:23 -04:00
multipart good: use of g_value_dup_string 2019-12-20 09:30:26 +00:00
replaygain Remove autotools build system 2019-10-14 11:04:18 +01:00
rtp rtph26*depay: drop FU's without a corresponding start bit 2020-09-21 08:08:38 +00:00
rtpmanager rtpmanager: Improve readability of "stats" docs by making the fields an actual list 2020-08-13 07:24:17 +00:00
rtsp rtspsrc: Fix push-backchannel-buffer parameter mismatch 2020-09-11 18:33:04 +08:00
shapewipe Remove autotools build system 2019-10-14 11:04:18 +01:00
smpte plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:42:25 +02:00
spectrum Remove autotools build system 2019-10-14 11:04:18 +01:00
udp Don't pass default GLib marshallers for signals 2019-11-17 15:32:30 +00:00
videobox meson: add update-orc-dist target 2020-07-04 15:04:59 +01:00
videocrop Fix usage of C99 2020-03-23 21:32:04 -04:00
videofilter plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:42:25 +02:00
videomixer meson: add update-orc-dist target 2020-07-04 15:04:59 +01:00
wavenc wavenc: Fix writing of the channel mask with >2 channels 2020-01-13 19:50:06 +00:00
wavparse Remove autotools build system 2019-10-14 11:04:18 +01:00
y4m Remove autotools build system 2019-10-14 11:04:18 +01:00
meson.build meson: Add feature options for all plugins 2018-07-27 18:42:54 +05:30