mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 11:11:08 +00:00
8d77759834
GstPtpClock implements a PTP (IEEE1588:2008) ordinary clock in slave-only mode, that allows a GStreamer pipeline to synchronize to a PTP network clock in some specific domain. The PTP subsystem can be initialized with gst_ptp_init(), which then starts a helper process to do the actual communication via the PTP ports. This is required as PTP listens on ports < 1024 and thus requires special privileges. Once this helper process is started, the main process will synchronize to all PTP domains that are detected on the selected interfaces. gst_ptp_clock_new() then allows to create a GstClock that provides the PTP time from a master clock inside a specific PTP domain. This clock will only return valid timestamps once the timestamps in the PTP domain are known. To check this, the GstPtpClock::internal-clock property and the related notify::clock signal can be used. Once the internal clock is not NULL, the PTP domain's time is known. Alternatively you can wait for this with gst_ptp_clock_wait_ready(). To gather statistics about the PTP clock synchronization, gst_ptp_statistics_callback_add() can be used. This gives the application the possibility to collect all kinds of statistics from the clock synchronization. https://bugzilla.gnome.org/show_bug.cgi?id=749391
95 lines
3.3 KiB
Makefile
95 lines
3.3 KiB
Makefile
lib_LTLIBRARIES = libgstnet-@GST_API_VERSION@.la
|
|
|
|
libgstnet_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/net
|
|
libgstnet_@GST_API_VERSION@_include_HEADERS = \
|
|
net.h \
|
|
gstnet.h \
|
|
gstnetaddressmeta.h \
|
|
gstnetclientclock.h \
|
|
gstnetcontrolmessagemeta.h \
|
|
gstnettimepacket.h \
|
|
gstnettimeprovider.h \
|
|
gstptpclock.h
|
|
|
|
libgstnet_@GST_API_VERSION@_la_SOURCES = \
|
|
gstnetaddressmeta.c \
|
|
gstnetclientclock.c \
|
|
gstnetcontrolmessagemeta.c \
|
|
gstnettimepacket.c \
|
|
gstnettimeprovider.c \
|
|
gstptpclock.c
|
|
|
|
noinst_HEADERS = gstptp_private.h
|
|
|
|
libgstnet_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS) $(GIO_CFLAGS)
|
|
libgstnet_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS) $(GIO_LIBS) \
|
|
$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la
|
|
libgstnet_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
|
|
|
|
# try to prevent packaging errors
|
|
check-libexecdir-consistency:
|
|
@if test "${GST_PTP_HELPER_INSTALLED}" != "${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-ptp-helper"; then \
|
|
echo "*** Inconsistent libexecdir! Please use ./configure --libexecdir=/foo/bar"; \
|
|
echo "*** to set the libexecdir and not make libexecdir=/foo/bar or the like."; \
|
|
echo "*** The same goes for prefix, libdir etc."; \
|
|
echo "*** ${GST_PTP_HELPER_INSTALLED} != ${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-ptp-helper"; \
|
|
exit 1; \
|
|
fi
|
|
|
|
all-local: check-libexecdir-consistency
|
|
|
|
CLEANFILES = *.gcno *.gcda *.gcov
|
|
|
|
%.c.gcov: .libs/libgstnet_@GST_API_VERSION@_la-%.gcda %.c
|
|
$(GCOV) -b -f -o $^ > $@.out
|
|
|
|
gcov: $(libgstnet_@GST_API_VERSION@_la_SOURCES:=.gcov)
|
|
|
|
|
|
if HAVE_INTROSPECTION
|
|
BUILT_GIRSOURCES = GstNet-@GST_API_VERSION@.gir
|
|
|
|
gir_headers=$(patsubst %,$(srcdir)/%, $(libgstnet_@GST_API_VERSION@_include_HEADERS))
|
|
gir_sources=$(patsubst %,$(srcdir)/%, $(libgstnet_@GST_API_VERSION@_la_SOURCES))
|
|
gir_cincludes=--c-include="gst/net/net.h"
|
|
|
|
GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la
|
|
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
|
|
GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
|
|
$(INTROSPECTION_SCANNER) -v --namespace GstNet \
|
|
--strip-prefix=Gst \
|
|
--warn-all \
|
|
--nsversion=@GST_API_VERSION@ \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/libs \
|
|
-I$(top_builddir) \
|
|
-I$(top_builddir)/libs \
|
|
$(gir_cincludes) \
|
|
--add-include-path=$(top_builddir)/gst \
|
|
--library-path=$(top_builddir)/gst \
|
|
--library=libgstnet-@GST_API_VERSION@.la \
|
|
--include=Gst-@GST_API_VERSION@ \
|
|
--include=Gio-2.0 \
|
|
--libtool="${LIBTOOL}" \
|
|
--pkg gstreamer-@GST_API_VERSION@ \
|
|
--pkg gio-2.0 \
|
|
--pkg-export="gstreamer-net-@GST_API_VERSION@" \
|
|
--add-init-section="gst_init(NULL,NULL);" \
|
|
--output $@ \
|
|
$(gir_headers) \
|
|
$(gir_sources)
|
|
|
|
# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
|
|
# install anything - we need to install inside our prefix.
|
|
girdir = $(datadir)/gir-1.0
|
|
gir_DATA = $(BUILT_GIRSOURCES)
|
|
|
|
typelibsdir = $(libdir)/girepository-1.0/
|
|
|
|
typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
|
|
|
|
%.typelib: %.gir $(INTROSPECTION_COMPILER)
|
|
$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=$(top_builddir)/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
|
|
|
|
CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
|
|
endif
|