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
80#[cfg(feature = "v1_28")]
81#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
82pub mod image_util;
83
84mod enums;
85
86// Re-export all the traits in a prelude module, so that applications
87// can always "use gst_app::prelude::*" without getting conflicts
88pub mod prelude {
89    pub use crate::classification::AnalyticsRelationMetaClassificationExt;
90    #[cfg(feature = "v1_30")]
91    #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
92    pub use crate::group::AnalyticsRelationMetaGroupExt;
93    #[cfg(feature = "v1_30")]
94    #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
95    pub use crate::keypoint::AnalyticsRelationMetaKeypointExt;
96    pub use crate::object_detection::AnalyticsRelationMetaODExt;
97    pub use crate::tracking::AnalyticsRelationMetaTrackingExt;
98}