NVIDIA DeepStream SDK API Reference

9.0 Release
sources/libs/nvds_rest_server/nvds_rest_metrics.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
13 #ifndef _NVDS_REST_METRICS_H_
14 #define _NVDS_REST_METRICS_H_
15 
16 #include <glib.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #define MAX_COMPONENT_LEN 64
23 
24 // -----------------------------------------------------------------------------
25 // Data Structures
26 // -----------------------------------------------------------------------------
27 
31 typedef struct _NvDsMetricsFrameLatency {
32  guint source_id; // Source ID, e.g., camera ID
33  guint frame_num; // Frame number for which latency is measured
34  gdouble comp_in_timestamp; // System timestamp when buffer arrives at the first component
35  gdouble latency; // Latency of the frame in milliseconds
37 
41 typedef struct _NvDsMetricsCompLatency {
42  gchar component_name[MAX_COMPONENT_LEN]; // Component name
43  gdouble in_system_timestamp; // Timestamp when buffer arrives at component input
44  gdouble out_system_timestamp; // Timestamp when buffer is sent downstream
45  guint source_id; // Source ID, e.g., camera ID
46  guint frame_num; // Frame number
47  guint pad_index; // Pad index for the frame in the batch
48  guint num_sub_comps; // Number of subcomponents
49  gdouble latency; // Latency in milliseconds
51 
55 typedef struct {
56  guint source_id;
57  gdouble fps_val;
58  gchar source_name[256];
60 
64 typedef struct {
67 
69  guint fps_count;
70 
73 
74  GMutex mutex; // Global lock
75  GMutex frame_metrics_mutex; // Additional lock for frame metrics
76  void* user_data;
78 
82 typedef struct {
85 
87 
88  GMutex mutex; // Global lock
89  GMutex comp_metrics_mutex; // Additional lock for component metrics
90  void* user_data;
92 
93 // -----------------------------------------------------------------------------
94 // Global Instances
95 // -----------------------------------------------------------------------------
98 
99 // -----------------------------------------------------------------------------
100 // API Functions
101 // -----------------------------------------------------------------------------
102 
103 // Frame Latency APIs
106 void nvds_update_shared_frame_latency_data(NvDsMetricsFrameLatency* latency_data, guint count);
108 
109 // Component Latency APIs
112 void nvds_update_shared_comp_latency_data(NvDsMetricsCompLatency* latency_data, guint count);
114 
115 // FPS APIs
116 void nvds_update_shared_fps_data(NvDsMetricsFpsData* data, guint count);
118 
119 #ifdef __cplusplus
120 }
121 #endif
122 
123 #endif // _NVDS_REST_METRICS_H_
_NvDsMetricsCompLatency::source_id
guint source_id
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:45
_NvDsMetricsFrameLatency::frame_num
guint frame_num
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:33
_NvDsMetricsCompLatency::in_system_timestamp
gdouble in_system_timestamp
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:43
NvDsMetricsFpsData::fps_val
gdouble fps_val
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:57
NvDsCompLatencySharedData::comp_latency_available
gboolean comp_latency_available
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:86
_NvDsMetricsCompLatency::frame_num
guint frame_num
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:46
_NvDsMetricsFrameLatency::source_id
guint source_id
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:32
_NvDsMetricsFrameLatency
Holds information about the latency of a given frame.
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:31
nvds_init_shared_comp_latency_data
void nvds_init_shared_comp_latency_data(void)
NvDsFrameLatencySharedData::mutex
GMutex mutex
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:74
nvds_get_shared_frame_latency_data
NvDsMetricsFrameLatency * nvds_get_shared_frame_latency_data(guint *count)
NvDsFrameLatencySharedData::frame_latency_data
NvDsMetricsFrameLatency * frame_latency_data
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:65
g_shared_frame_latency_data
NvDsFrameLatencySharedData g_shared_frame_latency_data
nvds_get_shared_fps_data
NvDsMetricsFpsData * nvds_get_shared_fps_data(guint *count)
MAX_COMPONENT_LEN
#define MAX_COMPONENT_LEN
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:22
_NvDsMetricsCompLatency::out_system_timestamp
gdouble out_system_timestamp
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:44
NvDsFrameLatencySharedData::frame_latency_count
guint frame_latency_count
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:68
_NvDsMetricsCompLatency::num_sub_comps
guint num_sub_comps
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:48
_NvDsMetricsCompLatency
Holds information about latency of a given component.
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:41
_NvDsMetricsCompLatency::latency
gdouble latency
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:49
nvds_update_shared_frame_latency_data
void nvds_update_shared_frame_latency_data(NvDsMetricsFrameLatency *latency_data, guint count)
NvDsCompLatencySharedData::mutex
GMutex mutex
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:88
NvDsFrameLatencySharedData::user_data
void * user_data
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:76
NvDsFrameLatencySharedData::frame_metrics_mutex
GMutex frame_metrics_mutex
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:75
NvDsFrameLatencySharedData::fps_data_available
gboolean fps_data_available
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:72
_NvDsMetricsCompLatency::pad_index
guint pad_index
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:47
_NvDsMetricsFrameLatency::comp_in_timestamp
gdouble comp_in_timestamp
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:34
NvDsCompLatencySharedData::user_data
void * user_data
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:90
NvDsFrameLatencySharedData::fps_count
guint fps_count
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:69
nvds_cleanup_shared_frame_latency_data
void nvds_cleanup_shared_frame_latency_data(void)
NvDsMetricsFpsData
Holds FPS data for a source.
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:55
g_shared_comp_latency_data
NvDsCompLatencySharedData g_shared_comp_latency_data
nvds_get_shared_comp_latency_data
NvDsMetricsCompLatency * nvds_get_shared_comp_latency_data(guint *count)
NvDsFrameLatencySharedData::frame_latency_available
gboolean frame_latency_available
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:71
nvds_cleanup_shared_comp_latency_data
void nvds_cleanup_shared_comp_latency_data(void)
nvds_update_shared_fps_data
void nvds_update_shared_fps_data(NvDsMetricsFpsData *data, guint count)
NvDsMetricsFpsData::source_id
guint source_id
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:56
nvds_update_shared_comp_latency_data
void nvds_update_shared_comp_latency_data(NvDsMetricsCompLatency *latency_data, guint count)
NvDsMetricsFrameLatency
struct _NvDsMetricsFrameLatency NvDsMetricsFrameLatency
Holds information about the latency of a given frame.
NvDsMetricsCompLatency
struct _NvDsMetricsCompLatency NvDsMetricsCompLatency
Holds information about latency of a given component.
NvDsFrameLatencySharedData::fps_data
NvDsMetricsFpsData * fps_data
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:66
NvDsCompLatencySharedData::comp_metrics_mutex
GMutex comp_metrics_mutex
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:89
NvDsCompLatencySharedData::comp_latency_count
guint comp_latency_count
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:84
_NvDsMetricsFrameLatency::latency
gdouble latency
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:35
NvDsCompLatencySharedData
Shared data structure for component latency metrics.
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:82
NvDsFrameLatencySharedData
Shared data structure for frame latency metrics.
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:64
NvDsCompLatencySharedData::comp_latency_data
NvDsMetricsCompLatency * comp_latency_data
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:83
_NvDsMetricsCompLatency::component_name
gchar component_name[MAX_COMPONENT_LEN]
Definition: sources/libs/nvds_rest_server/nvds_rest_metrics.h:42
nvds_init_shared_frame_latency_data
void nvds_init_shared_frame_latency_data(void)