gstreamer/ext/avtp
Ederson de Souza 12838af353 avtpcvfpay: Ensure NAL fragments are transmitted following stream specs
TSN streams are expected to send packets to the network in a well
defined "pace", which is arbitrarily defined for each stream. This pace
is defined by the "measurement interval" property of a stream.

When the AVTP CVF payloader element - avtpcvfpay - fragments a video
frame that is too big to be sent to the network, it currently defines
that all fragments should be transmitted at the same time (via DTS
property of GstBuffers generated, as sink will use those to time the
transmission of the AVTPDU). This doesn't comply with stream definition,
which also has a limit on how many packets can be sent on a given
measurement interval.

This patch solves that by spreading in time the DTS of the GstBuffers
containing the AVTPDUs. Two new properties, "measurement-interval" and
"max-interval-frames", added to avptcvfpay element so that it knows
stream measurement interval and how many AVTPDUs it can send on any of
them. More details on the method used to proper spread DTS/PTS according
to measurement interval can be found in a code commentary inside this patch.

Tests also added for the new property and behaviour.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1004>
2020-05-02 17:42:15 +00:00
..
gstavtp.c avtp: Introduce the CRF Check element 2020-04-30 23:31:25 +00:00
gstavtpaafdepay.c avtp: Build with clang 2020-02-07 21:53:57 +00:00
gstavtpaafdepay.h avtp: Introduce AAF depayloader element 2019-07-03 09:59:35 -07:00
gstavtpaafpay.c avtp: Plug several leaks 2020-02-07 21:53:57 +00: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
gstavtpcrfbase.c avtp: Introduce the CRF Sync Element 2020-04-30 23:31:25 +00:00
gstavtpcrfbase.h avtp: Introduce the CRF Sync Element 2020-04-30 23:31:25 +00:00
gstavtpcrfcheck.c avtp: Introduce the CRF Check element 2020-04-30 23:31:25 +00:00
gstavtpcrfcheck.h avtp: Introduce the CRF Check element 2020-04-30 23:31:25 +00:00
gstavtpcrfsync.c avtp: Introduce the CRF Sync Element 2020-04-30 23:31:25 +00:00
gstavtpcrfsync.h avtp: Introduce the CRF Sync Element 2020-04-30 23:31:25 +00:00
gstavtpcrfutil.c avtp: Introduce the CRF Sync Element 2020-04-30 23:31:25 +00:00
gstavtpcrfutil.h avtp: Introduce the CRF Sync Element 2020-04-30 23:31:25 +00:00
gstavtpcvfdepay.c avtp: Plug several leaks 2020-02-07 21:53:57 +00:00
gstavtpcvfdepay.h avtp: Add fragmented packets handling to CVF depayloader 2019-07-03 09:59:35 -07:00
gstavtpcvfpay.c avtpcvfpay: Ensure NAL fragments are transmitted following stream specs 2020-05-02 17:42:15 +00:00
gstavtpcvfpay.h avtpcvfpay: Ensure NAL fragments are transmitted following stream specs 2020-05-02 17:42:15 +00:00
gstavtpsink.c avtpsink: Implement synchronization mechanism 2020-02-05 22:28:12 +00:00
gstavtpsink.h avtpsink: Implement synchronization mechanism 2020-02-05 22:28:12 +00:00
gstavtpsrc.c avtp: Refactor if_index code 2020-02-05 22:28:12 +00:00
gstavtpsrc.h avtp: Introduce AVTP source element 2019-07-03 09:59:35 -07:00
meson.build avtp: Introduce the CRF Check element 2020-04-30 23:31:25 +00:00