NVIDIA DeepStream SDK API Reference

6.4 Release
deepstream_audio.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  */
22 
23 #ifndef __NVGSTDS_AUDIO_H__
24 #define __NVGSTDS_AUDIO_H__
25 
26 #ifdef __cplusplus
27 extern "C"
28 {
29 #endif
30 
31 #include <gst/gst.h>
32 #include <stdio.h>
33 
34 #include "deepstream_app_version.h"
35 #include "deepstream_common.h"
36 #include "deepstream_config.h"
37 #include "deepstream_perf.h"
39 #include "deepstream_sinks.h"
40 #include "deepstream_sources.h"
41 #include "deepstream_streammux.h"
42 
43 
44 typedef struct _AppCtx AppCtx;
45 
46 typedef void (*bbox_generated_callback)(AppCtx *appCtx, GstBuffer *buf,
47  NvDsBatchMeta *batch_meta, guint index);
48 
49 typedef struct
50 {
51  guint index;
54  GstElement *bin;
55  GstElement *tee;
60 
61 typedef struct
62 {
63  guint bus_id;
64  GstElement *pipeline;
66  //NvDsSrcBin src_bin;
70 } NvDsPipeline;
71 
72 typedef struct
73 {
75  gint file_loop;
81 
82  gchar **uri_list;
83  NvDsSourceConfig multi_source_config[MAX_SOURCE_BINS];
86  NvDsSinkSubBinConfig sink_bin_sub_bin_config[MAX_SINK_BINS];
87 } NvDsConfig;
88 
89 struct _AppCtx
90 {
91  gboolean version;
92  gboolean cintr;
93  gboolean seeking;
94  gboolean quit;
98  guint index;
99 
100  GMutex app_lock;
101  GCond app_cond;
102 
106 };
107 
108 typedef struct
109 {
112  struct timespec timespec_first_frame;
113  GstClockTime gst_ts_first_frame;
115  guint32 id;
117  GstClockTime last_ntp_time;
119 
120 typedef struct
121 {
123 } TestAppCtx;
124 
133 gboolean create_pipeline (AppCtx * appCtx, perf_callback perf_cb, bbox_generated_callback bgpa_cb);
134 
135 gboolean pause_pipeline (AppCtx * appCtx);
136 gboolean resume_pipeline (AppCtx * appCtx);
137 gboolean seek_pipeline (AppCtx * appCtx, glong milliseconds, gboolean seek_is_relative);
138 
139 void destroy_pipeline (AppCtx * appCtx);
140 void restart_pipeline (AppCtx * appCtx);
141 
150 gboolean
151 parse_config_file (NvDsConfig * config, gchar * cfg_file_path);
152 
153 #ifdef __cplusplus
154 }
155 #endif
156 
157 #endif
NvDsPipeline::common_elements
NvDsInstanceBin common_elements
Definition: deepstream_audio.h:68
resume_pipeline
gboolean resume_pipeline(AppCtx *appCtx)
NvDsPipeline::multi_src_bin
NvDsSrcParentBin multi_src_bin
Definition: deepstream_audio.h:65
_AppCtx::quit
gboolean quit
Definition: deepstream_audio.h:94
NvDsInstanceBin::sink_bin
NvDsSinkBin sink_bin
Definition: deepstream_audio.h:57
NvDsAudioClassifierBin
Definition: deepstream_audio_classifier.h:33
deepstream_streammux.h
AppCtx
REST server application context.
Definition: nvds_appctx_server.h:57
perf_callback
void(* perf_callback)(gpointer ctx, NvDsAppPerfStruct *str)
Definition: deepstream_perf.h:60
NvDsConfig::enable_perf_measurement
gboolean enable_perf_measurement
Definition: deepstream_audio.h:74
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:78
NvDsInstanceBin::appCtx
AppCtx * appCtx
Definition: deepstream_audio.h:58
StreamSourceInfo::anomaly_count
gint anomaly_count
Definition: deepstream_audio.h:110
NvDsPipeline
Definition: deepstream_audio.h:61
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:100
NvDsSinkSubBinConfig
Definition: deepstream_sinks.h:137
NvDsInstanceBin::bin
GstElement * bin
Definition: deepstream_audio.h:54
NvDsAppPerfStructInt
Definition: deepstream_perf.h:72
StreamSourceInfo::gst_ts_first_frame
GstClockTime gst_ts_first_frame
Definition: deepstream_audio.h:113
NvDsPipeline::bus_id
guint bus_id
Definition: deepstream_audio.h:63
StreamSourceInfo::lock_stream_rtcp_sr
GMutex lock_stream_rtcp_sr
Definition: deepstream_audio.h:114
_AppCtx::return_value
gint return_value
Definition: deepstream_audio.h:97
_AppCtx::version
gboolean version
Definition: deepstream_audio.h:91
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:75
StreamSourceInfo::meta_number
gint meta_number
Definition: deepstream_audio.h:111
NvDsConfig::source_list_enabled
gboolean source_list_enabled
Definition: deepstream_audio.h:76
deepstream_config.h
deepstream_sinks.h
_AppCtx
Definition: deepstream_audio.h:89
pause_pipeline
gboolean pause_pipeline(AppCtx *appCtx)
NvDsInstanceBin::index
guint index
Definition: deepstream_audio.h:51
_AppCtx::perf_struct
NvDsAppPerfStructInt perf_struct
Definition: deepstream_audio.h:105
deepstream_common.h
NvDsPipeline::pipeline
GstElement * pipeline
Definition: deepstream_audio.h:64
_AppCtx::pipeline
NvDsPipeline pipeline
Definition: deepstream_audio.h:103
_AppCtx::seeking
gboolean seeking
Definition: deepstream_audio.h:93
StreamSourceInfo::last_ntp_time
GstClockTime last_ntp_time
Definition: deepstream_audio.h:117
bbox_generated_callback
void(* bbox_generated_callback)(AppCtx *appCtx, GstBuffer *buf, NvDsBatchMeta *batch_meta, guint index)
Definition: deepstream_audio.h:46
NvDsSourceConfig
Definition: deepstream_sources.h:47
_AppCtx::bbox_generated_post_analytics_cb
bbox_generated_callback bbox_generated_post_analytics_cb
Definition: deepstream_audio.h:95
deepstream_audio_classifier.h
_NvDsBatchMeta
Holds information about a formed batch containing frames from different sources.
Definition: nvdsmeta.h:240
NvDsInstanceBin::tee
GstElement * tee
Definition: deepstream_audio.h:55
deepstream_perf.h
NvDsPipeline::instance_bin
NvDsInstanceBin instance_bin
Definition: deepstream_audio.h:67
NvDsPipeline::appCtx
AppCtx * appCtx
Definition: deepstream_audio.h:69
NvDsInstanceBin
Definition: deepstream_audio.h:49
destroy_pipeline
void destroy_pipeline(AppCtx *appCtx)
_AppCtx::app_cond
GCond app_cond
Definition: deepstream_audio.h:101
deepstream_sources.h
_AppCtx::audio_event_id
gint audio_event_id
Definition: deepstream_audio.h:96
StreamSourceInfo
Definition: deepstream_audio.h:108
NvDsConfig::num_sink_sub_bins
guint num_sink_sub_bins
Definition: deepstream_audio.h:79
NvDsStreammuxConfig
Definition: deepstream_streammux.h:33
NvDsConfig
Definition: deepstream_audio.h:72
NvDsInstanceBin::audio_classifier_bin
NvDsAudioClassifierBin audio_classifier_bin
Definition: deepstream_audio.h:56
NvDsGieConfig
Definition: deepstream_gie.h:43
StreamSourceInfo::frameCount
gint frameCount
Definition: deepstream_audio.h:116
NvDsInstanceBin::primary_bbox_buffer_probe_id
gulong primary_bbox_buffer_probe_id
Definition: deepstream_audio.h:53
MAX_SINK_BINS
#define MAX_SINK_BINS
Definition: deepstream_config.h:95
NvDsSrcParentBin
Definition: deepstream_sources.h:155
TestAppCtx
Definition: deepstream_audio.h:120
NvDsInstanceBin::all_bbox_buffer_probe_id
gulong all_bbox_buffer_probe_id
Definition: deepstream_audio.h:52
GstBuffer
struct _GstBuffer GstBuffer
Definition: idatatype.h:19
NvDsConfig::streammux_config
NvDsStreammuxConfig streammux_config
Definition: deepstream_audio.h:84
NvDsConfig::audio_classifier_config
NvDsGieConfig audio_classifier_config
Definition: deepstream_audio.h:85
NvDsConfig::perf_measurement_interval_sec
guint perf_measurement_interval_sec
Definition: deepstream_audio.h:80
MAX_SOURCE_BINS
#define MAX_SOURCE_BINS
Definition: deepstream_config.h:94
NvDsSinkBin
Definition: deepstream_sinks.h:164
NvDsConfig::total_num_sources
guint total_num_sources
Definition: deepstream_audio.h:77
StreamSourceInfo::id
guint32 id
Definition: deepstream_audio.h:115
NvDsConfig::uri_list
gchar ** uri_list
Definition: deepstream_audio.h:82
_AppCtx::config
NvDsConfig config
Definition: deepstream_audio.h:104
_AppCtx::cintr
gboolean cintr
Definition: deepstream_audio.h:92
restart_pipeline
void restart_pipeline(AppCtx *appCtx)
_AppCtx::index
guint index
Definition: deepstream_audio.h:98