Skip to main content

gstreamer_app/
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 gstreamer_app_sys as ffi;
12
13macro_rules! assert_initialized_main_thread {
14    () => {
15        if !gst::INITIALIZED.load(std::sync::atomic::Ordering::SeqCst) {
16            gst::assert_initialized();
17        }
18    };
19}
20
21macro_rules! skip_assert_initialized {
22    () => {};
23}
24
25#[allow(unused_imports)]
26#[allow(clippy::derivable_impls)]
27mod auto;
28pub use crate::auto::*;
29
30pub mod app_sink;
31#[cfg(feature = "futures")]
32pub(crate) mod app_sink_futures;
33pub use crate::app_sink::AppSinkCallbacks;
34
35pub mod app_src;
36#[cfg(feature = "futures")]
37pub(crate) mod app_src_futures;
38pub use crate::app_src::AppSrcCallbacks;
39
40// Re-export all the traits in a prelude module, so that applications
41// can always "use gst_app::prelude::*" without getting conflicts
42pub mod prelude {
43    #[doc(hidden)]
44    pub use gst_base::prelude::*;
45}