NVIDIA DeepStream SDK API Reference

7.0 Release
deepstream_audio.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2020 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 __NVGSTDS_AUDIO_H__
14 #define __NVGSTDS_AUDIO_H__
15 
16 #ifdef __cplusplus
17 extern "C"
18 {
19 #endif
20 
21 #include <gst/gst.h>
22 #include <stdio.h>
23 
24 #include "deepstream_app_version.h"
25 #include "deepstream_common.h"
26 #include "deepstream_config.h"
27 #include "deepstream_perf.h"
29 #include "deepstream_sinks.h"
30 #include "deepstream_sources.h"
31 #include "deepstream_streammux.h"
32 
33 
34 typedef struct _AppCtx AppCtx;
35 
36 typedef void (*bbox_generated_callback)(AppCtx *appCtx, GstBuffer *buf,
37  NvDsBatchMeta *batch_meta, guint index);
38 
39 typedef struct
40 {
41  guint index;
44  GstElement *bin;
45  GstElement *tee;
50 
51 typedef struct
52 {
53  guint bus_id;
54  GstElement *pipeline;
56  //NvDsSrcBin src_bin;
60 } NvDsPipeline;
61 
62 typedef struct
63 {
65  gint file_loop;
71 
72  gchar **uri_list;
73  NvDsSourceConfig multi_source_config[MAX_SOURCE_BINS];
76  NvDsSinkSubBinConfig sink_bin_sub_bin_config[MAX_SINK_BINS];
77 } NvDsConfig;
78 
79 struct _AppCtx
80 {
81  gboolean version;
82  gboolean cintr;
83  gboolean seeking;
84  gboolean quit;
88  guint index;
89 
90  GMutex app_lock;
91  GCond app_cond;
92 
96 };
97 
98 typedef struct
99 {
102  struct timespec timespec_first_frame;
103  GstClockTime gst_ts_first_frame;
105  guint32 id;
107  GstClockTime last_ntp_time;
109 
110 typedef struct
111 {
113 } TestAppCtx;
114 
123 gboolean create_pipeline (AppCtx * appCtx, perf_callback perf_cb, bbox_generated_callback bgpa_cb);
124 
125 gboolean pause_pipeline (AppCtx * appCtx);
126 gboolean resume_pipeline (AppCtx * appCtx);
127 gboolean seek_pipeline (AppCtx * appCtx, glong milliseconds, gboolean seek_is_relative);
128 
129 void destroy_pipeline (AppCtx * appCtx);
130 void restart_pipeline (AppCtx * appCtx);
131 
140 gboolean
141 parse_config_file (NvDsConfig * config, gchar * cfg_file_path);
142 
143 #ifdef __cplusplus
144 }
145 #endif
146 
147 #endif
NvDsPipeline::common_elements
NvDsInstanceBin common_elements
Definition: deepstream_audio.h:58
resume_pipeline
gboolean resume_pipeline(AppCtx *appCtx)
NvDsPipeline::multi_src_bin
NvDsSrcParentBin multi_src_bin
Definition: deepstream_audio.h:55
_AppCtx::quit
gboolean quit
Definition: deepstream_audio.h:84
NvDsInstanceBin::sink_bin
NvDsSinkBin sink_bin
Definition: deepstream_audio.h:47
NvDsAudioClassifierBin
Definition: deepstream_audio_classifier.h:23
deepstream_streammux.h
AppCtx
REST server application context.
Definition: nvds_appctx_server.h:46
perf_callback
void(* perf_callback)(gpointer ctx, NvDsAppPerfStruct *str)
Definition: deepstream_perf.h:52
NvDsConfig::enable_perf_measurement
gboolean enable_perf_measurement
Definition: deepstream_audio.h:64
parse_config_file
gboolean parse_config_file(NvDsConfig *config, gchar *cfg_file_path)
Function to read properties from configuration file.
NvDsConfig::num_source_sub_bins
guint num_source_sub_bins
Definition: deepstream_audio.h:68
NvDsInstanceBin::appCtx
AppCtx * appCtx
Definition: deepstream_audio.h:48
StreamSourceInfo::anomaly_count
gint anomaly_count
Definition: deepstream_audio.h:100
NvDsPipeline
Definition: deepstream_audio.h:51
deepstream_app_version.h
seek_pipeline
gboolean seek_pipeline(AppCtx *appCtx, glong milliseconds, gboolean seek_is_relative)
_AppCtx::app_lock
GMutex app_lock
Definition: deepstream_audio.h:90
NvDsSinkSubBinConfig
Definition: deepstream_sinks.h:129
NvDsInstanceBin::bin
GstElement * bin
Definition: deepstream_audio.h:44
NvDsAppPerfStructInt
Definition: deepstream_perf.h:64
StreamSourceInfo::gst_ts_first_frame
GstClockTime gst_ts_first_frame
Definition: deepstream_audio.h:103
NvDsPipeline::bus_id
guint bus_id
Definition: deepstream_audio.h:53
StreamSourceInfo::lock_stream_rtcp_sr
GMutex lock_stream_rtcp_sr
Definition: deepstream_audio.h:104
_AppCtx::return_value
gint return_value
Definition: deepstream_audio.h:87
_AppCtx::version
gboolean version
Definition: deepstream_audio.h:81
create_pipeline
gboolean create_pipeline(AppCtx *appCtx, perf_callback perf_cb, bbox_generated_callback bgpa_cb)
Create DS Anyalytics Pipeline per the appCtx configurations.
NvDsConfig::file_loop
gint file_loop
Definition: deepstream_audio.h:65
StreamSourceInfo::meta_number
gint meta_number
Definition: deepstream_audio.h:101
NvDsConfig::source_list_enabled
gboolean source_list_enabled
Definition: deepstream_audio.h:66
deepstream_config.h
deepstream_sinks.h
_AppCtx
Definition: deepstream_audio.h:79
pause_pipeline
gboolean pause_pipeline(AppCtx *appCtx)
NvDsInstanceBin::index
guint index
Definition: deepstream_audio.h:41
_AppCtx::perf_struct
NvDsAppPerfStructInt perf_struct
Definition: deepstream_audio.h:95
deepstream_common.h
NvDsPipeline::pipeline
GstElement * pipeline
Definition: deepstream_audio.h:54
_AppCtx::pipeline
NvDsPipeline pipeline
Definition: deepstream_audio.h:93
_AppCtx::seeking
gboolean seeking
Definition: deepstream_audio.h:83
StreamSourceInfo::last_ntp_time
GstClockTime last_ntp_time
Definition: deepstream_audio.h:107
bbox_generated_callback
void(* bbox_generated_callback)(AppCtx *appCtx, GstBuffer *buf, NvDsBatchMeta *batch_meta, guint index)
Definition: deepstream_audio.h:36
NvDsSourceConfig
Definition: deepstream_sources.h:38
_AppCtx::bbox_generated_post_analytics_cb
bbox_generated_callback bbox_generated_post_analytics_cb
Definition: deepstream_audio.h:85
deepstream_audio_classifier.h
_NvDsBatchMeta
Holds information about a formed batch containing frames from different sources.
Definition: nvdsmeta.h:241
NvDsInstanceBin::tee
GstElement * tee
Definition: deepstream_audio.h:45
deepstream_perf.h
NvDsPipeline::instance_bin
NvDsInstanceBin instance_bin
Definition: deepstream_audio.h:57
NvDsPipeline::appCtx
AppCtx * appCtx
Definition: deepstream_audio.h:59
NvDsInstanceBin
Definition: deepstream_audio.h:39
destroy_pipeline
void destroy_pipeline(AppCtx *appCtx)
_AppCtx::app_cond
GCond app_cond
Definition: deepstream_audio.h:91
deepstream_sources.h
_AppCtx::audio_event_id
gint audio_event_id
Definition: deepstream_audio.h:86
StreamSourceInfo
Definition: deepstream_audio.h:98
NvDsConfig::num_sink_sub_bins
guint num_sink_sub_bins
Definition: deepstream_audio.h:69
NvDsStreammuxConfig
Definition: deepstream_streammux.h:23
NvDsConfig
Definition: deepstream_audio.h:62
NvDsInstanceBin::audio_classifier_bin
NvDsAudioClassifierBin audio_classifier_bin
Definition: deepstream_audio.h:46
NvDsGieConfig
Definition: deepstream_gie.h:33
StreamSourceInfo::frameCount
gint frameCount
Definition: deepstream_audio.h:106
NvDsInstanceBin::primary_bbox_buffer_probe_id
gulong primary_bbox_buffer_probe_id
Definition: deepstream_audio.h:43
MAX_SINK_BINS
#define MAX_SINK_BINS
Definition: deepstream_config.h:85
NvDsSrcParentBin
Definition: deepstream_sources.h:147
TestAppCtx
Definition: deepstream_audio.h:110
NvDsInstanceBin::all_bbox_buffer_probe_id
gulong all_bbox_buffer_probe_id
Definition: deepstream_audio.h:42
GstBuffer
struct _GstBuffer GstBuffer
Definition: idatatype.h:19
NvDsConfig::streammux_config
NvDsStreammuxConfig streammux_config
Definition: deepstream_audio.h:74
NvDsConfig::audio_classifier_config
NvDsGieConfig audio_classifier_config
Definition: deepstream_audio.h:75
NvDsConfig::perf_measurement_interval_sec
guint perf_measurement_interval_sec
Definition: deepstream_audio.h:70
MAX_SOURCE_BINS
#define MAX_SOURCE_BINS
Definition: deepstream_config.h:84
NvDsSinkBin
Definition: deepstream_sinks.h:156
NvDsConfig::total_num_sources
guint total_num_sources
Definition: deepstream_audio.h:67
StreamSourceInfo::id
guint32 id
Definition: deepstream_audio.h:105
NvDsConfig::uri_list
gchar ** uri_list
Definition: deepstream_audio.h:72
_AppCtx::config
NvDsConfig config
Definition: deepstream_audio.h:94
_AppCtx::cintr
gboolean cintr
Definition: deepstream_audio.h:82
restart_pipeline
void restart_pipeline(AppCtx *appCtx)
_AppCtx::index
guint index
Definition: deepstream_audio.h:88