From 0714c2ceb034a4c5c1513d89ca583b195f4375dd Mon Sep 17 00:00:00 2001 From: Christian Meissl Date: Fri, 6 Jan 2023 20:31:13 +0100 Subject: [PATCH] gstreamer-allocators: allow to subclass fd memory allocators Part-of: --- gstreamer-allocators/src/lib.rs | 2 ++ .../src/subclass/dma_buf_allocator.rs | 6 ++++++ gstreamer-allocators/src/subclass/fd_allocator.rs | 7 +++++++ gstreamer-allocators/src/subclass/mod.rs | 14 ++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 gstreamer-allocators/src/subclass/dma_buf_allocator.rs create mode 100644 gstreamer-allocators/src/subclass/fd_allocator.rs create mode 100644 gstreamer-allocators/src/subclass/mod.rs diff --git a/gstreamer-allocators/src/lib.rs b/gstreamer-allocators/src/lib.rs index c729e498f..c3951282f 100644 --- a/gstreamer-allocators/src/lib.rs +++ b/gstreamer-allocators/src/lib.rs @@ -57,3 +57,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; +}