#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
#![allow(
clippy::approx_constant,
clippy::type_complexity,
clippy::unreadable_literal,
clippy::upper_case_acronyms
)]
#![cfg_attr(docsrs, feature(doc_cfg))]
use glib_sys as glib;
use gstreamer_sys as gst;
mod manual;
pub use manual::*;
#[allow(unused_imports)]
use libc::{FILE, intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t};
#[cfg(unix)]
#[allow(unused_imports)]
use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
#[allow(unused_imports)]
use std::ffi::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
};
#[allow(unused_imports)]
use glib::{GType, gboolean, gconstpointer, gpointer};
pub type GstAnalyticsMtdType = uintptr_t;
pub type GstAnalyticsKeypointDimensions = c_int;
pub const GST_ANALYTICS_KEYPOINT_DIMENSIONS_2D: GstAnalyticsKeypointDimensions = 2;
pub const GST_ANALYTICS_KEYPOINT_DIMENSIONS_3D: GstAnalyticsKeypointDimensions = 3;
pub type GstAnalyticsModelInfoTensorDirection = c_int;
pub const MODELINFO_DIRECTION_UNKNOWN: GstAnalyticsModelInfoTensorDirection = 0;
pub const MODELINFO_DIRECTION_INPUT: GstAnalyticsModelInfoTensorDirection = 1;
pub const MODELINFO_DIRECTION_OUTPUT: GstAnalyticsModelInfoTensorDirection = 2;
pub type GstSegmentationType = c_int;
pub const GST_SEGMENTATION_TYPE_SEMANTIC: GstSegmentationType = 0;
pub const GST_SEGMENTATION_TYPE_INSTANCE: GstSegmentationType = 1;
pub type GstTensorDataType = c_int;
pub const GST_TENSOR_DATA_TYPE_INT4: GstTensorDataType = 0;
pub const GST_TENSOR_DATA_TYPE_INT8: GstTensorDataType = 1;
pub const GST_TENSOR_DATA_TYPE_INT16: GstTensorDataType = 2;
pub const GST_TENSOR_DATA_TYPE_INT32: GstTensorDataType = 3;
pub const GST_TENSOR_DATA_TYPE_INT64: GstTensorDataType = 4;
pub const GST_TENSOR_DATA_TYPE_UINT4: GstTensorDataType = 5;
pub const GST_TENSOR_DATA_TYPE_UINT8: GstTensorDataType = 6;
pub const GST_TENSOR_DATA_TYPE_UINT16: GstTensorDataType = 7;
pub const GST_TENSOR_DATA_TYPE_UINT32: GstTensorDataType = 8;
pub const GST_TENSOR_DATA_TYPE_UINT64: GstTensorDataType = 9;
pub const GST_TENSOR_DATA_TYPE_FLOAT16: GstTensorDataType = 10;
pub const GST_TENSOR_DATA_TYPE_FLOAT32: GstTensorDataType = 11;
pub const GST_TENSOR_DATA_TYPE_FLOAT64: GstTensorDataType = 12;
pub const GST_TENSOR_DATA_TYPE_BFLOAT16: GstTensorDataType = 13;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_STRING: GstTensorDataType = 14;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_BOOL: GstTensorDataType = 15;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_COMPLEX64: GstTensorDataType = 16;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_COMPLEX128: GstTensorDataType = 17;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN: GstTensorDataType = 18;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ: GstTensorDataType = 19;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_FLOAT8E5M2: GstTensorDataType = 20;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub const GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ: GstTensorDataType = 21;
pub type GstTensorDimOrder = c_int;
pub const GST_TENSOR_DIM_ORDER_ROW_MAJOR: GstTensorDimOrder = 0;
pub const GST_TENSOR_DIM_ORDER_COL_MAJOR: GstTensorDimOrder = 1;
pub type GstTensorLayout = c_int;
pub const GST_TENSOR_LAYOUT_CONTIGUOUS: GstTensorLayout = 0;
pub const GST_CAPS_FEATURE_META_GST_ANALYTICS_BATCH_META: &[u8] = b"meta:GstAnalyticsBatchMeta\0";
pub const GST_INF_RELATION_SPAN: c_int = -1;
pub const GST_MODELINFO_SECTION_NAME: &[u8] = b"modelinfo\0";
pub const GST_MODELINFO_VERSION_MAJOR: c_int = 1;
pub const GST_MODELINFO_VERSION_MINOR: c_int = 0;
pub const GST_MODELINFO_VERSION_STR: &[u8] = b"1.0\0";
pub const GST_ANALYTICS_MTD_TYPE_ANY: c_int = 0;
pub type GstAnalyticsKeypointVisibility = c_uint;
pub const GST_ANALYTICS_KEYPOINT_VISIBILITY_UNKNOWN: GstAnalyticsKeypointVisibility = 0;
pub const GST_ANALYTICS_KEYPOINT_VISIBILITY_VISIBLE: GstAnalyticsKeypointVisibility = 1;
pub const GST_ANALYTICS_KEYPOINT_VISIBILITY_OCCLUDED: GstAnalyticsKeypointVisibility = 4;
pub const GST_ANALYTICS_KEYPOINT_VISIBILITY_PROJECTED: GstAnalyticsKeypointVisibility = 8;
pub type GstAnalyticsRelTypes = c_uint;
pub const GST_ANALYTICS_REL_TYPE_NONE: GstAnalyticsRelTypes = 0;
pub const GST_ANALYTICS_REL_TYPE_IS_PART_OF: GstAnalyticsRelTypes = 2;
pub const GST_ANALYTICS_REL_TYPE_CONTAIN: GstAnalyticsRelTypes = 4;
pub const GST_ANALYTICS_REL_TYPE_RELATE_TO: GstAnalyticsRelTypes = 8;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub const GST_ANALYTICS_REL_TYPE_N_TO_N: GstAnalyticsRelTypes = 16;
pub const GST_ANALYTICS_REL_TYPE_ANY: GstAnalyticsRelTypes = 2147483647;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsBatchMeta {
pub meta: gst::GstMeta,
pub streams: *mut GstAnalyticsBatchStream,
pub n_streams: size_t,
}
impl ::std::fmt::Debug for GstAnalyticsBatchMeta {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsBatchMeta @ {self:p}"))
.field("meta", &self.meta)
.field("streams", &self.streams)
.field("n_streams", &self.n_streams)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsBatchStream {
pub index: c_uint,
pub sticky_events: *mut *mut gst::GstEvent,
pub n_sticky_events: size_t,
pub objects: *mut *mut gst::GstMiniObject,
pub n_objects: size_t,
pub padding: [gpointer; 4],
}
impl ::std::fmt::Debug for GstAnalyticsBatchStream {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsBatchStream @ {self:p}"))
.field("index", &self.index)
.field("sticky_events", &self.sticky_events)
.field("n_sticky_events", &self.n_sticky_events)
.field("objects", &self.objects)
.field("n_objects", &self.n_objects)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsClsMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsClsMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsClsMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsGroupMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsGroupMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsGroupMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsKeypointMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsKeypointMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsKeypointMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct GstAnalyticsModelInfo {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
impl ::std::fmt::Debug for GstAnalyticsModelInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsModelInfo @ {self:p}"))
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsMtdImpl {
pub name: *const c_char,
pub mtd_meta_transform: Option<
unsafe extern "C" fn(
*mut gst::GstBuffer,
*mut GstAnalyticsMtd,
*mut gst::GstBuffer,
glib::GQuark,
gpointer,
) -> gboolean,
>,
pub mtd_meta_clear: Option<unsafe extern "C" fn(*mut gst::GstBuffer, *mut GstAnalyticsMtd)>,
pub _reserved: [gpointer; 19],
}
impl ::std::fmt::Debug for GstAnalyticsMtdImpl {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsMtdImpl @ {self:p}"))
.field("name", &self.name)
.field("mtd_meta_transform", &self.mtd_meta_transform)
.field("mtd_meta_clear", &self.mtd_meta_clear)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsODMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsODMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsODMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[repr(C)]
#[allow(dead_code)]
pub struct _GstAnalyticsRelationMeta {
_data: [u8; 0],
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}
pub type GstAnalyticsRelationMeta = _GstAnalyticsRelationMeta;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsRelationMetaInitParams {
pub initial_relation_order: size_t,
pub initial_buf_size: size_t,
}
impl ::std::fmt::Debug for GstAnalyticsRelationMetaInitParams {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsRelationMetaInitParams @ {self:p}"))
.field("initial_relation_order", &self.initial_relation_order)
.field("initial_buf_size", &self.initial_buf_size)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsSegmentationMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsSegmentationMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsSegmentationMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsTensorMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsTensorMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsTensorMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstAnalyticsTrackingMtd {
pub id: c_uint,
pub meta: *mut GstAnalyticsRelationMeta,
}
impl ::std::fmt::Debug for GstAnalyticsTrackingMtd {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstAnalyticsTrackingMtd @ {self:p}"))
.field("id", &self.id)
.field("meta", &self.meta)
.finish()
}
}
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstTensorMeta {
pub meta: gst::GstMeta,
pub num_tensors: size_t,
pub tensors: *mut *mut GstTensor,
}
impl ::std::fmt::Debug for GstTensorMeta {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("GstTensorMeta @ {self:p}"))
.field("meta", &self.meta)
.field("num_tensors", &self.num_tensors)
.field("tensors", &self.tensors)
.finish()
}
}
unsafe extern "C" {
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_batch_meta_get_info() -> *const gst::GstMetaInfo;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_batch_stream_get_caps(
stream: *mut GstAnalyticsBatchStream,
) -> *mut gst::GstCaps;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_batch_stream_get_segment(
stream: *mut GstAnalyticsBatchStream,
) -> *const gst::GstSegment;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_batch_stream_get_stream_id(
stream: *mut GstAnalyticsBatchStream,
) -> *const c_char;
pub fn gst_analytics_cls_mtd_get_index_by_quark(
handle: *const GstAnalyticsClsMtd,
quark: glib::GQuark,
) -> c_int;
pub fn gst_analytics_cls_mtd_get_length(handle: *const GstAnalyticsClsMtd) -> size_t;
pub fn gst_analytics_cls_mtd_get_level(
handle: *const GstAnalyticsClsMtd,
index: size_t,
) -> c_float;
pub fn gst_analytics_cls_mtd_get_quark(
handle: *const GstAnalyticsClsMtd,
index: size_t,
) -> glib::GQuark;
pub fn gst_analytics_cls_mtd_get_mtd_type() -> GstAnalyticsMtdType;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_group_mtd_add_member(
handle: *mut GstAnalyticsGroupMtd,
an_meta_id: c_uint,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_group_mtd_get_member(
handle: *const GstAnalyticsGroupMtd,
index: size_t,
member: *mut GstAnalyticsMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_group_mtd_get_member_count(handle: *const GstAnalyticsGroupMtd) -> size_t;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_group_mtd_iterate(
handle: *const GstAnalyticsGroupMtd,
state: *mut gpointer,
type_: GstAnalyticsMtdType,
member: *mut GstAnalyticsMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_group_mtd_get_mtd_type() -> GstAnalyticsMtdType;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_keypoint_mtd_get_confidence(
handle: *const GstAnalyticsKeypointMtd,
confidence: *mut c_float,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_keypoint_mtd_get_position(
handle: *const GstAnalyticsKeypointMtd,
x: *mut c_int,
y: *mut c_int,
z: *mut c_int,
dimension: *mut GstAnalyticsKeypointDimensions,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_keypoint_mtd_get_visibility_flags(
handle: *const GstAnalyticsKeypointMtd,
visibility_flags: *mut u8,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_keypoint_mtd_get_mtd_type() -> GstAnalyticsMtdType;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_type() -> GType;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_find_tensor_name(
modelinfo: *mut GstAnalyticsModelInfo,
dir: GstAnalyticsModelInfoTensorDirection,
index: size_t,
in_tensor_name: *const c_char,
data_type: GstTensorDataType,
num_dims: size_t,
dims: *const size_t,
) -> *mut c_char;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_free(model_info: *mut GstAnalyticsModelInfo);
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_dims_order(
modelinfo: *mut GstAnalyticsModelInfo,
tensor_name: *const c_char,
) -> GstTensorDimOrder;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_group_id(
modelinfo: *mut GstAnalyticsModelInfo,
) -> *mut c_char;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_id(
modelinfo: *mut GstAnalyticsModelInfo,
tensor_name: *const c_char,
) -> *mut c_char;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_input_scales_offsets(
modelinfo: *mut GstAnalyticsModelInfo,
tensor_name: *const c_char,
num_input_ranges: size_t,
input_mins: *const c_double,
input_maxs: *const c_double,
num_output_ranges: *mut size_t,
output_scales: *mut *mut c_double,
output_offsets: *mut *mut c_double,
) -> gboolean;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_quark_group_id(
modelinfo: *mut GstAnalyticsModelInfo,
) -> glib::GQuark;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_quark_id(
modelinfo: *mut GstAnalyticsModelInfo,
tensor_name: *const c_char,
) -> glib::GQuark;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_target_ranges(
modelinfo: *mut GstAnalyticsModelInfo,
tensor_name: *const c_char,
num_ranges: *mut size_t,
mins: *mut *mut c_double,
maxs: *mut *mut c_double,
) -> gboolean;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_get_version(
modelinfo: *mut GstAnalyticsModelInfo,
) -> *mut c_char;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_modelinfo_load(
model_filename: *const c_char,
) -> *mut GstAnalyticsModelInfo;
pub fn gst_analytics_mtd_get_id(instance: *const GstAnalyticsMtd) -> c_uint;
pub fn gst_analytics_mtd_get_mtd_type(instance: *const GstAnalyticsMtd) -> GstAnalyticsMtdType;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_mtd_get_semantic_tag(instance: *const GstAnalyticsMtd) -> *mut c_char;
pub fn gst_analytics_mtd_get_size(instance: *const GstAnalyticsMtd) -> size_t;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_mtd_has_semantic_tag(
instance: *const GstAnalyticsMtd,
tag: *const c_char,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_mtd_semantic_tag_has_prefix(
instance: *const GstAnalyticsMtd,
prefix: *const c_char,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_mtd_set_semantic_tag(
instance: *mut GstAnalyticsMtd,
tag: *const c_char,
) -> gboolean;
pub fn gst_analytics_mtd_type_get_name(type_: GstAnalyticsMtdType) -> *const c_char;
pub fn gst_analytics_od_mtd_get_confidence_lvl(
instance: *const GstAnalyticsODMtd,
loc_conf_lvl: *mut c_float,
) -> gboolean;
pub fn gst_analytics_od_mtd_get_location(
instance: *const GstAnalyticsODMtd,
x: *mut c_int,
y: *mut c_int,
w: *mut c_int,
h: *mut c_int,
loc_conf_lvl: *mut c_float,
) -> gboolean;
pub fn gst_analytics_od_mtd_get_obj_type(handle: *const GstAnalyticsODMtd) -> glib::GQuark;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_od_mtd_get_oriented_location(
instance: *const GstAnalyticsODMtd,
x: *mut c_int,
y: *mut c_int,
w: *mut c_int,
h: *mut c_int,
r: *mut c_float,
loc_conf_lvl: *mut c_float,
) -> gboolean;
pub fn gst_analytics_od_mtd_get_mtd_type() -> GstAnalyticsMtdType;
pub fn gst_analytics_relation_meta_add_cls_mtd(
instance: *mut GstAnalyticsRelationMeta,
length: size_t,
confidence_levels: *mut c_float,
class_quarks: *mut glib::GQuark,
cls_mtd: *mut GstAnalyticsClsMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_relation_meta_add_group_mtd(
instance: *mut GstAnalyticsRelationMeta,
pre_alloc_size: size_t,
group_mtd: *mut GstAnalyticsGroupMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_relation_meta_add_group_mtd_with_size(
instance: *mut GstAnalyticsRelationMeta,
group_size: size_t,
group_mtd: *mut GstAnalyticsGroupMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_relation_meta_add_keypoint_mtd(
instance: *mut GstAnalyticsRelationMeta,
dimension: GstAnalyticsKeypointDimensions,
x: c_int,
y: c_int,
z: c_int,
visibility_flags: u8,
confidence: c_float,
keypoint_mtd: *mut GstAnalyticsKeypointMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_relation_meta_add_keypoints_group(
instance: *mut GstAnalyticsRelationMeta,
semantic_tag: *const c_char,
dimension: GstAnalyticsKeypointDimensions,
positions_len: size_t,
positions: *const c_int,
keypoint_count: size_t,
confidences: *const c_float,
visibilities: *const u8,
skeleton_pairs_len: size_t,
skeleton_pairs: *const c_int,
group_mtd: *mut GstAnalyticsGroupMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_add_mtd(
meta: *mut GstAnalyticsRelationMeta,
impl_: *const GstAnalyticsMtdImpl,
size: size_t,
rlt_mtd: *mut GstAnalyticsMtd,
) -> gpointer;
pub fn gst_analytics_relation_meta_add_od_mtd(
instance: *mut GstAnalyticsRelationMeta,
type_: glib::GQuark,
x: c_int,
y: c_int,
w: c_int,
h: c_int,
loc_conf_lvl: c_float,
od_mtd: *mut GstAnalyticsODMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_add_one_cls_mtd(
instance: *mut GstAnalyticsRelationMeta,
confidence_level: c_float,
class_quark: glib::GQuark,
cls_mtd: *mut GstAnalyticsClsMtd,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_relation_meta_add_oriented_od_mtd(
instance: *mut GstAnalyticsRelationMeta,
type_: glib::GQuark,
x: c_int,
y: c_int,
w: c_int,
h: c_int,
r: c_float,
loc_conf_lvl: c_float,
od_mtd: *mut GstAnalyticsODMtd,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_relation_meta_add_segmentation_mtd(
instance: *mut GstAnalyticsRelationMeta,
buffer: *mut gst::GstBuffer,
segmentation_type: GstSegmentationType,
region_count: size_t,
region_ids: *mut c_uint,
masks_loc_x: c_int,
masks_loc_y: c_int,
masks_loc_w: c_uint,
masks_loc_h: c_uint,
segmentation_mtd: *mut GstAnalyticsSegmentationMtd,
) -> gboolean;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_relation_meta_add_tensor_mtd(
instance: *mut GstAnalyticsRelationMeta,
num_dims: size_t,
tensor_mtd: *mut GstAnalyticsTensorMtd,
) -> gboolean;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_relation_meta_add_tensor_mtd_simple(
instance: *mut GstAnalyticsRelationMeta,
id: glib::GQuark,
data_type: GstTensorDataType,
data: *mut gst::GstBuffer,
dims_order: GstTensorDimOrder,
num_dims: size_t,
dims: *mut size_t,
tensor_mtd: *mut GstAnalyticsTensorMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_add_tracking_mtd(
instance: *mut GstAnalyticsRelationMeta,
tracking_id: u64,
tracking_first_seen: gst::GstClockTime,
trk_mtd: *mut GstAnalyticsTrackingMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_exist(
rmeta: *const GstAnalyticsRelationMeta,
an_meta_first_id: c_uint,
an_meta_second_id: c_uint,
max_relation_span: c_int,
cond_types: GstAnalyticsRelTypes,
relations_path: *mut *mut glib::GArray,
) -> gboolean;
pub fn gst_analytics_relation_meta_get_cls_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
rlt: *mut GstAnalyticsClsMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_get_direct_related(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
relation_type: GstAnalyticsRelTypes,
type_: GstAnalyticsMtdType,
state: *mut gpointer,
rlt_mtd: *mut GstAnalyticsMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_relation_meta_get_group_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
rlt: *mut GstAnalyticsGroupMtd,
) -> gboolean;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
pub fn gst_analytics_relation_meta_get_keypoint_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
rlt: *mut GstAnalyticsKeypointMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_get_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
type_: GstAnalyticsMtdType,
rlt: *mut GstAnalyticsMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_get_mtd_data(
meta: *const GstAnalyticsRelationMeta,
an_meta_id: c_uint,
) -> gpointer;
pub fn gst_analytics_relation_meta_get_od_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
rlt: *mut GstAnalyticsODMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_get_relation(
meta: *const GstAnalyticsRelationMeta,
an_meta_first_id: c_uint,
an_meta_second_id: c_uint,
) -> GstAnalyticsRelTypes;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_relation_meta_get_segmentation_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
rlt: *mut GstAnalyticsSegmentationMtd,
) -> gboolean;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_relation_meta_get_tensor_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
rlt: *mut GstAnalyticsTensorMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_get_tracking_mtd(
meta: *mut GstAnalyticsRelationMeta,
an_meta_id: c_uint,
rlt: *mut GstAnalyticsTrackingMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_iterate(
meta: *mut GstAnalyticsRelationMeta,
state: *mut gpointer,
type_: GstAnalyticsMtdType,
rlt_mtd: *mut GstAnalyticsMtd,
) -> gboolean;
pub fn gst_analytics_relation_meta_set_relation(
meta: *mut GstAnalyticsRelationMeta,
type_: GstAnalyticsRelTypes,
an_meta_first_id: c_uint,
an_meta_second_id: c_uint,
) -> gboolean;
pub fn gst_analytics_relation_meta_get_info() -> *const gst::GstMetaInfo;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_segmentation_mtd_get_mask(
handle: *const GstAnalyticsSegmentationMtd,
masks_loc_x: *mut c_int,
masks_loc_y: *mut c_int,
masks_loc_w: *mut c_uint,
masks_loc_h: *mut c_uint,
) -> *mut gst::GstBuffer;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_segmentation_mtd_get_region_count(
handle: *const GstAnalyticsSegmentationMtd,
) -> size_t;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_segmentation_mtd_get_region_id(
handle: *const GstAnalyticsSegmentationMtd,
index: size_t,
) -> c_uint;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_segmentation_mtd_get_region_index(
handle: *const GstAnalyticsSegmentationMtd,
index: *mut size_t,
id: c_uint,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_analytics_segmentation_mtd_get_mtd_type() -> GstAnalyticsMtdType;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_tensor_mtd_get_tensor(
instance: *const GstAnalyticsTensorMtd,
) -> *mut GstTensor;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_tensor_mtd_get_mtd_type() -> GstAnalyticsMtdType;
pub fn gst_analytics_tracking_mtd_get_info(
instance: *const GstAnalyticsTrackingMtd,
tracking_id: *mut u64,
tracking_first_seen: *mut gst::GstClockTime,
tracking_last_seen: *mut gst::GstClockTime,
tracking_lost: *mut gboolean,
) -> gboolean;
pub fn gst_analytics_tracking_mtd_set_lost(instance: *mut GstAnalyticsTrackingMtd) -> gboolean;
pub fn gst_analytics_tracking_mtd_update_last_seen(
instance: *mut GstAnalyticsTrackingMtd,
last_seen: gst::GstClockTime,
) -> gboolean;
pub fn gst_analytics_tracking_mtd_get_mtd_type() -> GstAnalyticsMtdType;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_get_type() -> GType;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_alloc(num_dims: size_t) -> *mut GstTensor;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_new_simple(
id: glib::GQuark,
data_type: GstTensorDataType,
data: *mut gst::GstBuffer,
dims_order: GstTensorDimOrder,
num_dims: size_t,
dims: *mut size_t,
) -> *mut GstTensor;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_tensor_check_type(
tensor: *const GstTensor,
data_type: GstTensorDataType,
order: GstTensorDimOrder,
num_dims: size_t,
dims: *const size_t,
) -> gboolean;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_copy(tensor: *const GstTensor) -> *mut GstTensor;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_free(tensor: *mut GstTensor);
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_get_dims(tensor: *mut GstTensor, num_dims: *mut size_t) -> *mut size_t;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_tensor_set_simple(
tensor: *mut GstTensor,
id: glib::GQuark,
data_type: GstTensorDataType,
data: *mut gst::GstBuffer,
dims_order: GstTensorDimOrder,
num_dims: size_t,
dims: *mut size_t,
) -> gboolean;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_tensor_data_type_get_name(data_type: GstTensorDataType) -> *const c_char;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_meta_get(tmeta: *mut GstTensorMeta, index: size_t) -> *const GstTensor;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_tensor_meta_get_by_id(
tmeta: *mut GstTensorMeta,
id: glib::GQuark,
) -> *const GstTensor;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_meta_get_index_from_id(meta: *mut GstTensorMeta, id: glib::GQuark) -> c_int;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_tensor_meta_get_typed_tensor(
tmeta: *mut GstTensorMeta,
tensor_id: glib::GQuark,
data_type: GstTensorDataType,
order: GstTensorDimOrder,
num_dims: size_t,
dims: *const size_t,
) -> *const GstTensor;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_meta_set(
tmeta: *mut GstTensorMeta,
num_tensors: c_uint,
tensors: *mut *mut GstTensor,
);
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_meta_get_info() -> *const gst::GstMetaInfo;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_batch_meta_api_get_type() -> GType;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_buffer_add_analytics_batch_meta(
buffer: *mut gst::GstBuffer,
) -> *mut GstAnalyticsBatchMeta;
pub fn gst_buffer_add_analytics_relation_meta(
buffer: *mut gst::GstBuffer,
) -> *mut GstAnalyticsRelationMeta;
pub fn gst_buffer_add_analytics_relation_meta_full(
buffer: *mut gst::GstBuffer,
init_params: *mut GstAnalyticsRelationMetaInitParams,
) -> *mut GstAnalyticsRelationMeta;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_buffer_add_tensor_meta(buffer: *mut gst::GstBuffer) -> *mut GstTensorMeta;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_buffer_get_analytics_batch_meta(
buffer: *mut gst::GstBuffer,
) -> *mut GstAnalyticsBatchMeta;
pub fn gst_buffer_get_analytics_relation_meta(
buffer: *mut gst::GstBuffer,
) -> *mut GstAnalyticsRelationMeta;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_buffer_get_tensor_meta(buffer: *mut gst::GstBuffer) -> *mut GstTensorMeta;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_image_util_iou_float(
bb1_x: c_float,
bb1_y: c_float,
bb1_w: c_float,
bb1_h: c_float,
bb2_x: c_float,
bb2_y: c_float,
bb2_w: c_float,
bb2_h: c_float,
) -> c_float;
#[cfg(feature = "v1_28")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
pub fn gst_analytics_image_util_iou_int(
bb1_x: c_int,
bb1_y: c_int,
bb1_w: c_int,
bb1_h: c_int,
bb2_x: c_int,
bb2_y: c_int,
bb2_w: c_int,
bb2_h: c_int,
) -> c_float;
pub fn gst_analytics_relation_get_length(instance: *const GstAnalyticsRelationMeta) -> size_t;
pub fn gst_analytics_relation_meta_api_get_type() -> GType;
#[cfg(feature = "v1_26")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
pub fn gst_tensor_meta_api_get_type() -> GType;
}