diff --git a/gstreamer-gl/Cargo.toml b/gstreamer-gl/Cargo.toml index 7e7027a33..07f58f32c 100644 --- a/gstreamer-gl/Cargo.toml +++ b/gstreamer-gl/Cargo.toml @@ -18,6 +18,7 @@ edition = "2018" [dependencies] bitflags = "1.0" byteorder = "1" +cfg-if = "1" libc = "0.2" once_cell = "1.0" ffi = { package = "gstreamer-gl-sys", path = "sys" } diff --git a/gstreamer-gl/src/gl_memory.rs b/gstreamer-gl/src/gl_memory.rs index 3fb211e64..059eabe1f 100644 --- a/gstreamer-gl/src/gl_memory.rs +++ b/gstreamer-gl/src/gl_memory.rs @@ -7,7 +7,18 @@ use crate::GLTextureTarget; use ffi::{GstGLBaseMemory, GstGLMemory}; use gst::{result_from_gboolean, LoggableError, CAT_RUST}; -gst::mini_object_wrapper!(GLMemory, GLMemoryRef, GstGLMemory); +cfg_if::cfg_if! { + if #[cfg(feature = "v1_20")] { + gst::mini_object_wrapper!( + GLMemory, + GLMemoryRef, + GstGLMemory, + ffi::gst_gl_memory_get_type + ); + } else { + gst::mini_object_wrapper!(GLMemory, GLMemoryRef, GstGLMemory); + } +} impl std::ops::Deref for GLMemoryRef { type Target = GLBaseMemoryRef;