diff --git a/gstreamer-net/Cargo.toml b/gstreamer-net/Cargo.toml index 162aefd37..060cf88d9 100644 --- a/gstreamer-net/Cargo.toml +++ b/gstreamer-net/Cargo.toml @@ -11,14 +11,12 @@ homepage = "https://gstreamer.freedesktop.org" documentation = "https://gstreamer.pages.freedesktop.org/gstreamer-rs/gstreamer_net/" keywords = ["gstreamer", "multimedia", "audio", "video", "gnome"] build = "build.rs" +edition = "2018" [dependencies] -glib-sys = { git = "https://github.com/gtk-rs/gtk-rs" } -gobject-sys = { git = "https://github.com/gtk-rs/gtk-rs" } -gstreamer-sys = { path = "../gstreamer/sys", features = ["v1_8"] } -gstreamer-net-sys = { path = "../gstreamer-net/sys", features = ["v1_8"] } +ffi = { package = "gstreamer-net-sys", path = "../gstreamer-net/sys", features = ["v1_8"] } glib = { git = "https://github.com/gtk-rs/gtk-rs" } -gstreamer = { path = "../gstreamer" } +gst = { package = "gstreamer", path = "../gstreamer" } gio = { git = "https://github.com/gtk-rs/gtk-rs" } [build-dependencies] @@ -26,14 +24,14 @@ gstreamer-rs-lgpl-docs = { path = "../docs", optional = true } [features] default = [] -v1_10 = ["gstreamer/v1_10", "gstreamer-net-sys/v1_10"] -v1_12 = ["gstreamer/v1_12", "gstreamer-net-sys/v1_12", "v1_10"] -v1_14 = ["gstreamer/v1_14", "gstreamer-net-sys/v1_14", "v1_12"] -v1_16 = ["gstreamer/v1_16", "gstreamer-net-sys/v1_16", "v1_14"] -v1_18 = ["gstreamer/v1_18", "gstreamer-net-sys/v1_18", "v1_16"] +v1_10 = ["gst/v1_10", "ffi/v1_10"] +v1_12 = ["gst/v1_12", "ffi/v1_12", "v1_10"] +v1_14 = ["gst/v1_14", "ffi/v1_14", "v1_12"] +v1_16 = ["gst/v1_16", "ffi/v1_16", "v1_14"] +v1_18 = ["gst/v1_18", "ffi/v1_18", "v1_16"] embed-lgpl-docs = ["gstreamer-rs-lgpl-docs"] purge-lgpl-docs = ["gstreamer-rs-lgpl-docs"] -dox = ["v1_18", "gstreamer-net-sys/dox", "glib/dox", "gio/dox", "gstreamer/dox"] +dox = ["v1_18", "ffi/dox", "glib/dox", "gio/dox", "gst/dox"] [package.metadata.docs.rs] features = ["dox", "embed-lgpl-docs"] diff --git a/gstreamer-net/src/lib.rs b/gstreamer-net/src/lib.rs index fb11b8c22..6edb38807 100644 --- a/gstreamer-net/src/lib.rs +++ b/gstreamer-net/src/lib.rs @@ -8,19 +8,11 @@ #![cfg_attr(feature = "dox", feature(doc_cfg))] -extern crate gio; -extern crate glib_sys; -extern crate gobject_sys; -extern crate gstreamer as gst; -extern crate gstreamer_net_sys as gst_net_sys; -extern crate gstreamer_sys as gst_sys; - -#[macro_use] -extern crate glib; +pub use ffi; macro_rules! assert_initialized_main_thread { () => { - if unsafe { ::gst_sys::gst_is_initialized() } != ::glib_sys::GTRUE { + if unsafe { gst::ffi::gst_is_initialized() } != glib::ffi::GTRUE { panic!("GStreamer has not been initialized. Call `gst::init` first."); } }; @@ -35,13 +27,13 @@ macro_rules! skip_assert_initialized { #[allow(clippy::match_same_arms)] #[allow(unused_imports)] mod auto; -pub use auto::*; +pub use crate::auto::*; mod net_client_clock; mod net_time_provider; mod ntp_clock; mod ptp_clock; -pub use net_address_meta::*; +pub use crate::net_address_meta::*; mod net_address_meta; // Re-export all the traits in a prelude module, so that applications @@ -50,5 +42,5 @@ pub mod prelude { pub use glib::prelude::*; pub use gst::prelude::*; - pub use auto::traits::*; + pub use crate::auto::traits::*; } diff --git a/gstreamer-net/src/net_address_meta.rs b/gstreamer-net/src/net_address_meta.rs index ffd22144d..dba06068c 100644 --- a/gstreamer-net/src/net_address_meta.rs +++ b/gstreamer-net/src/net_address_meta.rs @@ -1,14 +1,10 @@ use std::fmt; -use gio; -use glib; use glib::translate::*; -use gst; use gst::prelude::*; -use gst_net_sys; #[repr(transparent)] -pub struct NetAddressMeta(gst_net_sys::GstNetAddressMeta); +pub struct NetAddressMeta(ffi::GstNetAddressMeta); unsafe impl Send for NetAddressMeta {} unsafe impl Sync for NetAddressMeta {} @@ -20,7 +16,7 @@ impl NetAddressMeta { ) -> gst::MetaRefMut<'a, Self, gst::meta::Standalone> { skip_assert_initialized!(); unsafe { - let meta = gst_net_sys::gst_buffer_add_net_address_meta( + let meta = ffi::gst_buffer_add_net_address_meta( buffer.as_mut_ptr(), addr.as_ref().to_glib_none().0, ); @@ -35,17 +31,17 @@ impl NetAddressMeta { pub fn set_addr>(&mut self, addr: &T) { #![allow(clippy::cast_ptr_alignment)] unsafe { - gobject_sys::g_object_unref(self.0.addr as *mut _); + glib::gobject_ffi::g_object_unref(self.0.addr as *mut _); self.0.addr = addr.as_ref().to_glib_full(); } } } unsafe impl MetaAPI for NetAddressMeta { - type GstType = gst_net_sys::GstNetAddressMeta; + type GstType = ffi::GstNetAddressMeta; fn get_meta_api() -> glib::Type { - unsafe { from_glib(gst_net_sys::gst_net_address_meta_api_get_type()) } + unsafe { from_glib(ffi::gst_net_address_meta_api_get_type()) } } } diff --git a/gstreamer-net/src/net_client_clock.rs b/gstreamer-net/src/net_client_clock.rs index d869e5608..5910c5315 100644 --- a/gstreamer-net/src/net_client_clock.rs +++ b/gstreamer-net/src/net_client_clock.rs @@ -6,12 +6,10 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -use gst_net_sys; -use NetClientClock; +use crate::NetClientClock; use glib::object::Cast; use glib::translate::*; -use gst; impl NetClientClock { pub fn new( @@ -25,7 +23,7 @@ impl NetClientClock { let (major, minor, _, _) = gst::version(); if (major, minor) > (1, 12) { unsafe { - gst::Clock::from_glib_full(gst_net_sys::gst_net_client_clock_new( + gst::Clock::from_glib_full(ffi::gst_net_client_clock_new( name.0, remote_address.to_glib_none().0, remote_port, @@ -36,7 +34,7 @@ impl NetClientClock { } else { // Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13 unsafe { - gst::Clock::from_glib_none(gst_net_sys::gst_net_client_clock_new( + gst::Clock::from_glib_none(ffi::gst_net_client_clock_new( name.0, remote_address.to_glib_none().0, remote_port, diff --git a/gstreamer-net/src/net_time_provider.rs b/gstreamer-net/src/net_time_provider.rs index 6f22ab6fb..7dfe2cadd 100644 --- a/gstreamer-net/src/net_time_provider.rs +++ b/gstreamer-net/src/net_time_provider.rs @@ -6,12 +6,10 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -use gst_net_sys; -use NetTimeProvider; +use crate::NetTimeProvider; use glib::translate::*; use glib::IsA; -use gst; impl NetTimeProvider { pub fn new>(clock: &P, address: Option<&str>, port: i32) -> NetTimeProvider { @@ -21,7 +19,7 @@ impl NetTimeProvider { let (major, minor, _, _) = gst::version(); if (major, minor) > (1, 12) { unsafe { - from_glib_full(gst_net_sys::gst_net_time_provider_new( + from_glib_full(ffi::gst_net_time_provider_new( clock.as_ref().to_glib_none().0, address.0, port, @@ -30,7 +28,7 @@ impl NetTimeProvider { } else { // Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13 unsafe { - from_glib_none(gst_net_sys::gst_net_time_provider_new( + from_glib_none(ffi::gst_net_time_provider_new( clock.as_ref().to_glib_none().0, address.0, port, diff --git a/gstreamer-net/src/ntp_clock.rs b/gstreamer-net/src/ntp_clock.rs index 22a9ff0be..4e0a92065 100644 --- a/gstreamer-net/src/ntp_clock.rs +++ b/gstreamer-net/src/ntp_clock.rs @@ -6,12 +6,10 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -use gst_net_sys; -use NtpClock; +use crate::NtpClock; use glib::object::Cast; use glib::translate::*; -use gst; impl NtpClock { pub fn new( @@ -25,7 +23,7 @@ impl NtpClock { let (major, minor, _, _) = gst::version(); if (major, minor) > (1, 12) { unsafe { - gst::Clock::from_glib_full(gst_net_sys::gst_ntp_clock_new( + gst::Clock::from_glib_full(ffi::gst_ntp_clock_new( name.0, remote_address.to_glib_none().0, remote_port, @@ -36,7 +34,7 @@ impl NtpClock { } else { // Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13 unsafe { - gst::Clock::from_glib_none(gst_net_sys::gst_ntp_clock_new( + gst::Clock::from_glib_none(ffi::gst_ntp_clock_new( name.0, remote_address.to_glib_none().0, remote_port, diff --git a/gstreamer-net/src/ptp_clock.rs b/gstreamer-net/src/ptp_clock.rs index d786729fb..11d907edc 100644 --- a/gstreamer-net/src/ptp_clock.rs +++ b/gstreamer-net/src/ptp_clock.rs @@ -6,12 +6,10 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -use gst_net_sys; -use PtpClock; +use crate::PtpClock; use glib::object::Cast; use glib::translate::*; -use gst; impl PtpClock { pub fn new(name: Option<&str>, domain: u32) -> PtpClock { @@ -20,14 +18,12 @@ impl PtpClock { let (major, minor, _, _) = gst::version(); if (major, minor) > (1, 12) { unsafe { - gst::Clock::from_glib_full(gst_net_sys::gst_ptp_clock_new(name.0, domain)) - .unsafe_cast() + gst::Clock::from_glib_full(ffi::gst_ptp_clock_new(name.0, domain)).unsafe_cast() } } else { // Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13 unsafe { - gst::Clock::from_glib_none(gst_net_sys::gst_ptp_clock_new(name.0, domain)) - .unsafe_cast() + gst::Clock::from_glib_none(ffi::gst_ptp_clock_new(name.0, domain)).unsafe_cast() } } }