mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-03 16:09:39 +00:00
37550226d8
This patch introduces the avtpsink elements which implements a typical network sink. Implementation is pretty straightforward since the burden is implemented by GstBaseSink class. The avtpsink element defines three new properties: 1) network interface from where AVTPDU should be transmitted, 2) destination MAC address (usually a multicast address), and 3) socket priority (SO_PRIORITY). Socket setup and teardown are done in start/stop virtual methods while AVTPDU transmission is carried out by render(). AVTPDUs are encapsulated into Ethernet frames and transmitted to the network via AF_PACKET socket domain. Linux requires CAP_NET_RAW capability in order to open an AF_PACKET socket so the application that utilize this element must have it. For further info about AF_PACKET socket domain see packet(7). Finally, AVTPDUs are expected to be transmitted at specific times - according to the GstBuffer presentation timestamp - so the 'sync' property from GstBaseSink is set to TRUE by default.
30 lines
596 B
Makefile
30 lines
596 B
Makefile
plugin_LTLIBRARIES = libgstavtp.la
|
|
|
|
libgstavtp_la_SOURCES = \
|
|
gstavtp.c \
|
|
gstavtpaafdepay.c \
|
|
gstavtpaafpay.c \
|
|
gstavtpbasedepayload.c \
|
|
gstavtpbasepayload.c \
|
|
gstavtpsink.c
|
|
|
|
libgstavtp_la_CFLAGS = \
|
|
$(GST_PLUGINS_BASE_CFLAGS) \
|
|
$(GST_BASE_CFLAGS) \
|
|
$(GST_CFLAGS) \
|
|
$(AVTP_CFLAGS)
|
|
|
|
libgstavtp_la_LIBADD = \
|
|
$(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
|
|
$(GST_BASE_LIBS) \
|
|
$(GST_LIBS) \
|
|
$(AVTP_LIBS)
|
|
|
|
libgstavtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
|
|
|
noinst_HEADERS = \
|
|
gstavtpaafdepay.h \
|
|
gstavtpaafpay.h \
|
|
gstavtpbasedepayload.h \
|
|
gstavtpbasepayload.h \
|
|
gstavtpsink.h
|