diff --git a/gstreamer-allocators/src/lib.rs b/gstreamer-allocators/src/lib.rs index 691a85265..e735ddd4f 100644 --- a/gstreamer-allocators/src/lib.rs +++ b/gstreamer-allocators/src/lib.rs @@ -52,3 +52,5 @@ pub mod prelude { #[doc(hidden)] pub use gst::prelude::*; } + +pub mod subclass; diff --git a/gstreamer-allocators/src/subclass/dma_buf_allocator.rs b/gstreamer-allocators/src/subclass/dma_buf_allocator.rs new file mode 100644 index 000000000..e288026e3 --- /dev/null +++ b/gstreamer-allocators/src/subclass/dma_buf_allocator.rs @@ -0,0 +1,6 @@ +use glib::subclass::prelude::*; + +use crate::{subclass::fd_allocator::FdAllocatorImpl, DmaBufAllocator}; + +pub trait DmaBufAllocatorImpl: FdAllocatorImpl {} +unsafe impl IsSubclassable for DmaBufAllocator {} diff --git a/gstreamer-allocators/src/subclass/fd_allocator.rs b/gstreamer-allocators/src/subclass/fd_allocator.rs new file mode 100644 index 000000000..82f45c4bb --- /dev/null +++ b/gstreamer-allocators/src/subclass/fd_allocator.rs @@ -0,0 +1,7 @@ +use glib::subclass::prelude::*; + +use crate::FdAllocator; +use gst::subclass::prelude::AllocatorImpl; + +pub trait FdAllocatorImpl: AllocatorImpl {} +unsafe impl IsSubclassable for FdAllocator {} diff --git a/gstreamer-allocators/src/subclass/mod.rs b/gstreamer-allocators/src/subclass/mod.rs new file mode 100644 index 000000000..1f16b3d41 --- /dev/null +++ b/gstreamer-allocators/src/subclass/mod.rs @@ -0,0 +1,14 @@ +#[cfg(any(target_os = "linux", feature = "dox"))] +#[cfg_attr(feature = "dox", doc(cfg(target_os = "linux")))] +mod dma_buf_allocator; +mod fd_allocator; + +pub mod prelude { + #[doc(hidden)] + pub use gst::subclass::prelude::*; + + #[cfg(any(target_os = "linux", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(target_os = "linux")))] + pub use super::dma_buf_allocator::DmaBufAllocatorImpl; + pub use super::fd_allocator::FdAllocatorImpl; +}