1#![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
52pub 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;