NVIDIA DeepStream SDK API Reference

9.2 Release
service-maker/sources/python/src/bindings/utils.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2017-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #include "utilsdoc.h"
19 
20 class EngineFileMonitor : public NvDsModelEngineWatchOTFTrigger {
21 public:
22  EngineFileMonitor(Node& e, const string &file) : NvDsModelEngineWatchOTFTrigger(&e, file) {}
23 };
24 
25 void module_utils_bind(py::module &m);
26 
27 void module_utils_bind(py::module &m) {
28  py::module utils_module = m.def_submodule("utils");
29  py::class_<PerfMonitor>(utils_module, "PerfMonitor", pydeepstreamdoc::utils::PerfMonitorDoc::descr)
30  .def(py::init<unsigned int, uint64_t, string&, bool>(), py::arg("batch_size"), py::arg("interval"), py::arg("source_type"), py::arg("show_name"))
31  .def("apply", [](PerfMonitor& self, Node& node, string& tips) {
32  self.apply(node, tips);
33  },
35  py::arg("node"), py::arg("tips"))
38  .def("add_stream", [](PerfMonitor& self, uint32_t source_id, string& uri, string& sensor_id, string& sensor_name) {
39  self.addStream(source_id, uri.c_str(), sensor_id.c_str(), sensor_name.c_str());
40  }, pydeepstreamdoc::utils::PerfMonitorDoc::add_stream, py::arg("source_id"), py::arg("uri"), py::arg("sensor_id"), py::arg("sensor_name"))
41  .def("remove_stream", &PerfMonitor::removeStream, pydeepstreamdoc::utils::PerfMonitorDoc::remove_stream);
42  py::class_<EngineFileMonitor>(utils_module, "EngineFileMonitor", py::dynamic_attr(), pydeepstreamdoc::utils::EngineFileMonitorDoc::descr)
43  .def(py::init<Node&, string>(), pydeepstreamdoc::utils::EngineFileMonitorDoc::init)
45  .def("start", [](EngineFileMonitor& self) {
46  self.start();
48  .def("stop", [](EngineFileMonitor& self) {
49  self.stop();
51  .def("__repr__", [](EngineFileMonitor& self) {
52  return "EngineFileMonitor(started=" + std::to_string(self.started) + ")";
53  });
54  py::class_<AudioStreamInfo>(utils_module, "AudioStreamInfo", pydeepstreamdoc::utils::AudioStreamInfoDoc::descr)
55  .def_property_readonly("codec", [](const AudioStreamInfo& self) { return self.codec; })
56  .def_property_readonly("channels", [](const AudioStreamInfo& self) { return self.channels; })
57  .def_property_readonly("sampling_rate", [](const AudioStreamInfo& self) { return self.sampling_rate; })
58  .def("__repr__", [](const AudioStreamInfo& self) {
59  return "AudioStreamInfo(codec=" + self.codec +
60  ", channels=" + std::to_string(self.channels) +
61  ", sampling_rate=" + std::to_string(self.sampling_rate) + ")";
62  });
63  py::class_<VideoStreamInfo>(utils_module, "VideoStreamInfo", pydeepstreamdoc::utils::VideoStreamInfoDoc::descr)
64  .def_property_readonly("codec", [](const VideoStreamInfo& self) { return self.codec; })
65  .def_property_readonly("width", [](const VideoStreamInfo& self) { return self.width; })
66  .def_property_readonly("height", [](const VideoStreamInfo& self) { return self.height; })
67  .def_property_readonly("framerate", [](const VideoStreamInfo& self) {
68  return pybind11::make_tuple(self.framerate.num, self.framerate.denom);
69  })
70  .def("__repr__", [](const VideoStreamInfo& self) {
71  return "VideoStreamInfo(codec=" + self.codec +
72  ", width=" + std::to_string(self.width) +
73  ", height=" + std::to_string(self.height) +
74  ", framerate=" + std::to_string(self.framerate.num) + "/" + std::to_string(self.framerate.denom) + ")";
75  });
76  py::class_<MediaInfo>(utils_module, "MediaInfo", pydeepstreamdoc::utils::MediaInfoDoc::descr)
77  .def_property_readonly("live", [](const MediaInfo& self) { return self.live; })
78  .def_property_readonly("duration", [](const MediaInfo& self) { return self.duration; })
79  .def_property_readonly("streams", [](const MediaInfo& self) {
80  pybind11::list py_list;
81  for (auto& s : self.streams) {
82  StreamInfo* p = s.get();
83  AudioStreamInfo* audio = dynamic_cast<AudioStreamInfo*>(p);
84  VideoStreamInfo* video = dynamic_cast<VideoStreamInfo*>(p);
85  if (audio) {
86  py_list.append(*audio);
87  } else if (video) {
88  py_list.append(*video);
89  }
90  }
91  return py_list;
92  })
93  .def("__bool__", [](const MediaInfo& self) { return !self.error; })
95  .def("__repr__", [](const MediaInfo& self) {
96  pybind11::list py_list;
97  for (auto& s : self.streams) {
98  StreamInfo* p = s.get();
99  AudioStreamInfo* audio = dynamic_cast<AudioStreamInfo*>(p);
100  VideoStreamInfo* video = dynamic_cast<VideoStreamInfo*>(p);
101  if (audio) {
102  py_list.append(*audio);
103  } else if (video) {
104  py_list.append(*video);
105  }
106  }
107  return "MediaInfo(live=" + std::to_string(self.live) +
108  ", duration=" + std::to_string(self.duration) +
109  ", streams=" + py::repr(py_list).cast<std::string>() + ")";
110  });
111 }
EngineFileMonitor
Definition: service-maker/sources/python/src/bindings/utils.h:20
pydeepstreamdoc::utils::PerfMonitorDoc::add_stream
constexpr const char * add_stream
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:41
pydeepstreamdoc::utils::PerfMonitorDoc::apply
constexpr const char * apply
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:34
width
JDIMENSION JDIMENSION * width
Definition: sources/libs/nvll_batch_jpeg_encode/oss/jpeglib.h:1001
pydeepstreamdoc::utils::MediaInfoDoc::discover
constexpr const char * discover
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:89
pydeepstreamdoc::utils::PerfMonitorDoc::resume
constexpr const char * resume
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:40
pydeepstreamdoc::utils::EngineFileMonitorDoc::start
constexpr const char * start
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:55
pydeepstreamdoc::utils::PerfMonitorDoc::pause
constexpr const char * pause
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:39
StreamInfo
Definition: sources/gst-plugins/gst-nvdsanalytics/nvds_analytics.h:90
pydeepstreamdoc::utils::AudioStreamInfoDoc::descr
constexpr const char * descr
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:62
pydeepstreamdoc::utils::PerfMonitorDoc::descr
constexpr const char * descr
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:26
pydeepstreamdoc::utils::EngineFileMonitorDoc::descr
constexpr const char * descr
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:53
pydeepstreamdoc::utils::MediaInfoDoc::descr
constexpr const char * descr
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:83
pydeepstreamdoc::utils::VideoStreamInfoDoc::descr
constexpr const char * descr
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:72
pydeepstreamdoc::utils::EngineFileMonitorDoc::init
constexpr const char * init
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:54
module_utils_bind
void module_utils_bind(py::module &m)
Definition: service-maker/sources/python/src/bindings/utils.h:27
Node
Definition: service-maker/sources/python/src/bindings/node.h:20
pydeepstreamdoc::utils::EngineFileMonitorDoc::started
constexpr const char * started
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:57
EngineFileMonitor::EngineFileMonitor
EngineFileMonitor(Node &e, const string &file)
Definition: service-maker/sources/python/src/bindings/utils.h:22
pydeepstreamdoc::utils::PerfMonitorDoc::remove_stream
constexpr const char * remove_stream
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:48
pydeepstreamdoc::utils::EngineFileMonitorDoc::stop
constexpr const char * stop
Definition: service-maker/sources/python/src/bindings/docstrings/utilsdoc.h:56