gstreamer-rs/gstreamer-gl/src/lib.rs
Marijn Suijten 01f0988a48 gl/gir: Configure generation for GLFilter with miniobject quirks
GLMemory input/output objects cannot be passed as mutable:
to_glib_none_mut checks if the miniobject is writable, even though the
underlying implementation should really only care about whether the
_data_ owned by this miniobject is.

(This temporary GLMemory object references its parent buffer object
 that is also referenced externally, resulting in two references making
 the object itself immutable)

Furthermore take care of automatically calling `add_rgba_pad_templates`
in `class_init` if `ADD_RGBA_PAD_TEMPLATES` is set to `true` (the
default).
2021-04-17 07:54:40 +00:00

62 lines
1.6 KiB
Rust

// Take a look at the license at the top of the repository in the LICENSE file.
#![cfg_attr(feature = "dox", feature(doc_cfg))]
pub use ffi;
pub use gst;
pub use gst_base;
pub use gst_video;
macro_rules! assert_initialized_main_thread {
() => {
if unsafe { gst::ffi::gst_is_initialized() } != glib::ffi::GTRUE {
panic!("GStreamer has not been initialized. Call `gst::init` first.");
}
};
}
macro_rules! skip_assert_initialized {
() => {};
}
#[allow(clippy::unreadable_literal)]
#[allow(clippy::too_many_arguments)]
#[allow(clippy::match_same_arms)]
mod auto;
pub use crate::auto::*;
mod caps_features;
pub use crate::caps_features::{CAPS_FEATURES_MEMORY_GL_MEMORY, CAPS_FEATURE_MEMORY_GL_MEMORY};
mod context;
pub use crate::context::ContextGLExt;
mod gl_context;
pub use crate::gl_context::GLContextExtManual;
mod gl_display;
pub use crate::gl_display::GL_DISPLAY_CONTEXT_TYPE;
mod gl_video_frame;
pub use crate::gl_video_frame::VideoFrameGLExt;
mod gl_sync_meta;
pub use crate::gl_sync_meta::*;
mod gl_base_memory;
pub use self::gl_base_memory::*;
// Re-export all the traits in a prelude module, so that applications
// can always "use gst::prelude::*" without getting conflicts
pub mod prelude {
#[doc(hidden)]
pub use glib::prelude::*;
#[doc(hidden)]
pub use gst::prelude::*;
#[doc(hidden)]
pub use gst_base::prelude::*;
#[doc(hidden)]
pub use gst_video::prelude::*;
pub use crate::auto::traits::*;
pub use crate::context::ContextGLExt;
pub use crate::gl_context::GLContextExtManual;
pub use crate::gl_video_frame::VideoFrameGLExt;
}
pub mod subclass;