Skip to main content

gstreamer_analytics/
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 gstreamer_analytics_sys as ffi;
11
12#[cfg(feature = "v1_28")]
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)]
26mod auto;
27pub use crate::auto::*;
28
29#[cfg(feature = "v1_26")]
30#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
31mod tensor;
32#[cfg(feature = "v1_26")]
33#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
34pub use crate::tensor::*;
35
36#[cfg(feature = "v1_26")]
37#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
38mod tensor_meta;
39#[cfg(feature = "v1_26")]
40#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
41pub use crate::tensor_meta::*;
42
43mod relation_meta;
44pub use crate::relation_meta::*;
45
46mod object_detection;
47pub use crate::object_detection::*;
48
49mod tracking;
50pub use crate::tracking::*;
51
52#[cfg(feature = "v1_30")]
53#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
54mod keypoint;
55#[cfg(feature = "v1_30")]
56#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
57pub use crate::keypoint::*;
58
59#[cfg(feature = "v1_30")]
60#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
61mod group;
62#[cfg(feature = "v1_30")]
63#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
64pub use crate::group::*;
65
66mod classification;
67pub use crate::classification::*;
68
69#[cfg(feature = "v1_28")]
70#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
71mod batchmeta;
72#[cfg(feature = "v1_28")]
73#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
74pub use crate::batchmeta::*;
75
76#[cfg(feature = "v1_28")]
77#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
78mod model_info;
79
80mod enums;
81
82// Re-export all the traits in a prelude module, so that applications
83// can always "use gst_app::prelude::*" without getting conflicts
84pub mod prelude {
85    pub use crate::classification::AnalyticsRelationMetaClassificationExt;
86    #[cfg(feature = "v1_30")]
87    #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
88    pub use crate::group::AnalyticsRelationMetaGroupExt;
89    #[cfg(feature = "v1_30")]
90    #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
91    pub use crate::keypoint::AnalyticsRelationMetaKeypointExt;
92    pub use crate::object_detection::AnalyticsRelationMetaODExt;
93    pub use crate::tracking::AnalyticsRelationMetaTrackingExt;
94}