avtp: Introduce AVTP CVF depayloader element
authorEderson de Souza <ederson.desouza@intel.com>
Tue, 12 Mar 2019 22:46:16 +0000 (15:46 -0700)
committerEderson de Souza <ederson.desouza@intel.com>
Wed, 3 Jul 2019 16:59:35 +0000 (09:59 -0700)
commit45d2f5a779c572b94d9dae842bca6369f92d78b6
tree9be972b9b257d1ad9f824e55de3e1827c34c8b02
parentb056297eead41b77a1d47e223e6bab2f1e6be6b2
avtp: Introduce AVTP CVF depayloader element

This patch introduces the AVTP Compressed Video Format (CVF) depayloader
specified in IEEE 1722-2016 section 8. Currently, this depayloader only
supports H.264 encapsulation described in section 8.5.

Is also worth noting that only single NAL units are handled: aggregated
and fragmented payloads are not handled.

As stated in AVTP CVF payloader patch, AVTP timestamp is used to define
outgoing buffer DTS, while the H264_TIMESTAMP defines outgoing buffer
PTS.

When an AVTP packet is received, the extracted H.264 NAL unit is added to
a "stash" (the out_buffer) of H.264 NAL units. This "stash" is pushed
downstream as single buffer (with NAL units aggregated according to format
used on GStreamer, based on ISO/IEC 14496-15) as soon as we get the AVTP
packet with M bit set.

This patch groups NAL units using a fixed NAL size lenght, sent downstream
on the `codec_data` capability.

The "stash" of NAL units can be prematurely sent downstream if a
discontinuity (a missing SEQNUM) happens.

This patch reuses the infra provided by gstavtpbasedepayload.c.
ext/avtp/Makefile.am
ext/avtp/gstavtp.c
ext/avtp/gstavtpcvfdepay.c [new file with mode: 0644]
ext/avtp/gstavtpcvfdepay.h [new file with mode: 0644]
ext/avtp/meson.build