Refer to the following pseudo code
Utils.cpp
namespace pydeepstream {
void bindutils(py::module &m) {
py::enum_<NvDsSRContainerType>(m, "NvDsSRContainerType")
.value("NVDSSR_CONTAINER_MP4", NVDSSR_CONTAINER_MP4)
.value("NVDSSR_CONTAINER_MKV", NVDSSR_CONTAINER_MKV)
.export_values();
py::class_<NvDsSRRecordingInfo>(m, "NvDsSRRecordingInfo")
.def(py::init<>())
.def_property("filename", STRING_CHAR_ARRAY(NvDsSRRecordingInfo, filename))
.def_property("dirpath", STRING_CHAR_ARRAY(NvDsSRRecordingInfo, dirpath))
.def_readwrite("duration", &NvDsSRRecordingInfo::duration)
.def_readwrite("containerType", &NvDsSRRecordingInfo::containerType)
.def_readwrite("width", &NvDsSRRecordingInfo::width)
.def_readwrite("height", &NvDsSRRecordingInfo::height)
.def_readwrite("containsVideo", &NvDsSRRecordingInfo::containsVideo)
.def_readwrite("channels", &NvDsSRRecordingInfo::channels)
.def_readwrite("samplingRate", &NvDsSRRecordingInfo::samplingRate)
.def_readwrite("containsAudio", &NvDsSRRecordingInfo::containsAudio)
.def("cast", [](size_t data) {
return (NvDsSRRecordingInfo *) data;
},
py::return_value_policy::reference)
.def("cast", [](void* data) {
return (NvDsSRRecordingInfo *) data;
},
py::return_value_policy::reference);
struct SRUserContext {
int sessionid;
char name[32];
};
py::class_<SRUserContext>(m, "SRUserContext")
.def(py::init<>())
.def_readwrite("sessionid", &SRUserContext::sessionid)
.def_property("name", STRING_CHAR_ARRAY(SRUserContext, name))
.def("cast", [](size_t data) {
return (SRUserContext *) data;
},
py::return_value_policy::reference)
.def("cast", [](void* data) {
return (SRUserContext *) data;
},
py::return_value_policy::reference);
}
pyds.cpp
bindopticalflowmeta(m);
bindutils(m);
bindcustom(m);