1// Take a look at the license at the top of the repository in the LICENSE file.
23#![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")]
78pub use glib;
9pub use gst;
10pub use gst_base;
11pub use gst_video;
12pub use gstreamer_gl_sys as ffi;
1314macro_rules! assert_initialized_main_thread {
15 () => {
16if !gst::INITIALIZED.load(std::sync::atomic::Ordering::SeqCst) {
17 gst::assert_initialized();
18 }
19 };
20}
2122macro_rules! skip_assert_initialized {
23 () => {};
24}
2526#[allow(unused_imports)]
27mod auto;
28pub use crate::auto::*;
2930#[cfg(feature = "serde")]
31mod flag_serde;
3233mod 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::*;
5152// 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)]
56pub use gst_video::prelude::*;
5758pub 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}
6465pub mod subclass;