gstreamer_gl/
lib.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3#![cfg_attr(docsrs, feature(doc_cfg))]
4#![allow(clippy::missing_safety_doc)]
5#![allow(clippy::manual_c_str_literals)]
6#![doc = include_str!("../README.md")]
7
8pub use glib;
9pub use gst;
10pub use gst_base;
11pub use gst_video;
12pub use gstreamer_gl_sys as ffi;
13
14macro_rules! assert_initialized_main_thread {
15    () => {
16        if !gst::INITIALIZED.load(std::sync::atomic::Ordering::SeqCst) {
17            gst::assert_initialized();
18        }
19    };
20}
21
22macro_rules! skip_assert_initialized {
23    () => {};
24}
25
26#[allow(unused_imports)]
27mod auto;
28pub use crate::auto::*;
29
30#[cfg(feature = "serde")]
31mod flag_serde;
32
33mod caps_features;
34pub use crate::caps_features::CAPS_FEATURES_MEMORY_GL_MEMORY;
35mod context;
36pub mod functions;
37pub use crate::functions::*;
38mod gl_context;
39mod gl_display;
40mod gl_sync_meta;
41pub mod gl_video_frame;
42pub use crate::gl_sync_meta::*;
43pub use crate::gl_video_frame::{GLVideoFrame, GLVideoFrameExt, GLVideoFrameRef};
44mod gl_base_memory;
45pub use self::gl_base_memory::*;
46mod gl_memory;
47pub use crate::gl_memory::*;
48mod gl_framebuffer;
49mod gl_memory_pbo;
50pub use crate::gl_memory_pbo::*;
51
52// Re-export all the traits in a prelude module, so that applications
53// can always "use gst_gl::prelude::*" without getting conflicts
54pub mod prelude {
55    #[doc(hidden)]
56    pub use gst_video::prelude::*;
57
58    pub use crate::{
59        auto::traits::*, context::ContextGLExt, gl_context::GLContextExtManual,
60        gl_display::GLDisplayExtManual, gl_framebuffer::GLFramebufferExtManual,
61        gl_video_frame::GLVideoFrameExt, gl_video_frame::IsGLVideoFrame,
62    };
63}
64
65pub mod subclass;