gstreamer/ext/avtp
Ederson de Souza 45d2f5a779 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.
2019-07-03 09:59:35 -07:00
..
gstavtp.c avtp: Introduce AVTP CVF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpaafdepay.c avtp: Introduce AAF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpaafdepay.h avtp: Introduce AAF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpaafpay.c avtp: Introduce AAF payloader element 2019-07-03 09:59:35 -07:00
gstavtpaafpay.h avtp: Introduce AAF payloader element 2019-07-03 09:59:35 -07:00
gstavtpbasedepayload.c avtp: Introduce AAF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpbasedepayload.h avtp: Introduce AAF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpbasepayload.c avtp: Introduce AAF payloader element 2019-07-03 09:59:35 -07:00
gstavtpbasepayload.h avtp: Introduce AAF payloader element 2019-07-03 09:59:35 -07:00
gstavtpcvfdepay.c avtp: Introduce AVTP CVF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpcvfdepay.h avtp: Introduce AVTP CVF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpcvfpay.c avtp: Add fragmentation feature to CVF payloader 2019-07-03 09:59:35 -07:00
gstavtpcvfpay.h avtp: Introduce AVTP CVF payloader element 2019-07-03 09:59:35 -07:00
gstavtpsink.c avtp: Introduce AVTP sink element 2019-07-03 09:59:35 -07:00
gstavtpsink.h avtp: Introduce AVTP sink element 2019-07-03 09:59:35 -07:00
gstavtpsrc.c avtp: Introduce AVTP source element 2019-07-03 09:59:35 -07:00
gstavtpsrc.h avtp: Introduce AVTP source element 2019-07-03 09:59:35 -07:00
Makefile.am avtp: Introduce AVTP CVF depayloader element 2019-07-03 09:59:35 -07:00
meson.build avtp: Introduce AVTP CVF depayloader element 2019-07-03 09:59:35 -07:00