From db2028c4c5157eafd8a243b868246e7336b3e157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 16 Nov 2023 17:21:30 +0200 Subject: [PATCH] net: Add new `PtpClock::init_full()` function Part-of: --- gstreamer-net/src/ptp_clock.rs | 20 ++++++++++++++++++++ gstreamer-net/sys/src/lib.rs | 3 +++ 2 files changed, 23 insertions(+) diff --git a/gstreamer-net/src/ptp_clock.rs b/gstreamer-net/src/ptp_clock.rs index eb67c1551..c43315fc6 100644 --- a/gstreamer-net/src/ptp_clock.rs +++ b/gstreamer-net/src/ptp_clock.rs @@ -28,6 +28,26 @@ impl PtpClock { } } + #[cfg(feature = "v1_24")] + #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] + // rustdoc-stripper-ignore-next + /// Initialize GStreamer PTP clock support + /// + /// This is automatically called once the first PTP clock instance is created. + #[doc(alias = "gst_ptp_init_full")] + pub fn init_full(s: &gst::StructureRef) -> Result<(), glib::BoolError> { + skip_assert_initialized!(); + unsafe { + let res: bool = from_glib(ffi::gst_ptp_init_full(s.as_ptr())); + + if res { + Ok(()) + } else { + Err(glib::bool_error!("Failed to initialize PTP subsystem")) + } + } + } + // rustdoc-stripper-ignore-next /// Deinitialize GStreamer PTP clock support /// diff --git a/gstreamer-net/sys/src/lib.rs b/gstreamer-net/sys/src/lib.rs index 0f1ec8437..8cc09ceb2 100644 --- a/gstreamer-net/sys/src/lib.rs +++ b/gstreamer-net/sys/src/lib.rs @@ -323,6 +323,9 @@ extern "C" { pub fn gst_net_utils_set_socket_tos(socket: *mut gio::GSocket, qos_dscp: c_int) -> gboolean; pub fn gst_ptp_deinit(); pub fn gst_ptp_init(clock_id: u64, interfaces: *mut *mut c_char) -> gboolean; + #[cfg(feature = "v1_24")] + #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] + pub fn gst_ptp_init_full(config: *const gst::GstStructure) -> gboolean; pub fn gst_ptp_is_initialized() -> gboolean; pub fn gst_ptp_is_supported() -> gboolean; pub fn gst_ptp_statistics_callback_add(