configure_source_for_ntp_sync

pyds.configure_source_for_ntp_sync(src_elem: int) None

配置源以为 RTSP 源生成 NTP 同步值。

这些值被 DeepStream GStreamer 元素 NvStreamMux 用于计算源处帧的 NTP 时间。

此功能依赖于 RTSP 发送 RTCP 发送者报告。源。

此函数仅适用于 RTSP 源,即 GStreamer 元素 “rtspsrc” 或 “uridecodebin” 以及 RTSP uri。

参数:

src_elem – 要配置的 GStreamer 源元素。

alloc_custom_struct

pyds.alloc_custom_struct(arg0: pyds.NvDsUserMeta) pyds.CustomDataStruct

分配一个 CustomDataStruct

返回值:

已分配的 CustomDataStruct

gst_element_send_nvevent_new_stream_reset

pyds.gst_element_send_nvevent_new_stream_reset(arg0: int, arg1: int) int

在给定元素的指定源上发送“自定义重置”事件。此 nvevent_new_stream_reset 事件向下游传播。

此函数以及其他重置事件,可用于在需要 RTSP 重新连接的情况下重置源。

参数:
  • gst_element – 需要向其发送生成事件的元素。

  • source_id – 需要为其生成此事件的源 ID

返回值:

成功返回 True。

gst_element_send_nvevent_interval_update

pyds.gst_element_send_nvevent_interval_update(arg0: int, arg1: str, arg2: int) bool

向 nvinfer 发送 “nv-infer-interval-update” 事件。

此函数用于更新 nvinfer 的 interval 属性值

参数:
  • gst_element – 需要向其发送 interval-update 事件的 nvinfer。

  • source_id – 要为其发送 infer-interval-update 的流的流 ID

  • interval – 与事件的流 ID 对应的推断间隔。

返回值:

成功返回 True。

get_segmentation_masks

pyds.get_segmentation_masks(data: capsule) numpy.ndarray

此函数以 Numpy 格式返回高度 X 宽度形状的推断掩码,这些高度和宽度从 NvDsInferSegmentationMeta 中获得。

参数:

dataNvDsInferSegmentationMeta 类型的对象

get_optical_flow_vectors

pyds.get_optical_flow_vectors(data: capsule) numpy.ndarray[numpy.float32]
参数:

of_metaNvDsOpticalFlowMeta 类型的对象

返回值:

Numpy 格式的交错 x、y 定向光流向量,用于像素块,形状为 (rows,cols,2),其中 rows 和 cols 是光流输出。这些行和列不等同于输入分辨率。

get_nvds_buf_surface

pyds.get_nvds_buf_surface(gst_buffer: int, batchID: int) numpy.ndarray

此函数以 NumPy 格式返回帧。仅支持 RGBA 格式。对于 x86_64,仅支持统一内存。对于 Jetson,缓冲区映射到 CPU 内存。对帧图像的更改将被保留并在下游元素中看到,但有以下限制。 1. 不更改图像颜色格式或分辨率 2. 不对数组进行转置操作。

对于 Jetson,必须对 unmap_nvds_buf_surface() 进行匹配调用。

参数:
  • gst_buffer – 包含 NvBufSurface 的 Gstbuffer 的地址

  • batchID – 要处理的帧的 batch_id。这表示帧在 NvBufSurface 中的索引

返回值:

包含帧图像缓冲区的 NumPy 数组。

get_nvds_buf_surface_gpu

pyds.get_nvds_buf_surface_gpu(gst_buffer: int, batchID: int) tuple

此函数返回 dtype、数组形状、步幅、指向 GPU 缓冲区的指针以及缓冲区已分配内存的大小。仅支持 x86 和 RGBA 格式。此信息可用于创建 CuPy 数组(请参阅 deepstream-imagedata-multistream-cupy)。对帧图像的更改将被保留并在下游元素中看到,但有以下限制。 1. 不更改图像颜色格式或分辨率 2. 不对数组进行转置操作。

参数:
  • gst_buffer – 包含 NvBufSurface 的 Gstbuffer 的地址

  • batchID – 要处理的帧的 batch_id。这表示帧在 NvBufSurface 中的索引

返回值:

GPU 缓冲区的 dtype、形状、步幅、指向缓冲区的指针、已分配内存大小

unmap_nvds_buf_surface

pyds.unmap_nvds_buf_surface(gst_buffer: int, batchID: int) None

如果先前已映射,此函数将取消映射给定 Gst 缓冲区和 batch id 的 NvBufSurface。对于 Jetson,对于每次调用 get_nvds_buf_surface(),都必须进行匹配的函数调用。

在此调用之后,将无法再访问该数组,因为内存已释放。

参数:
  • gst_buffer – 包含 NvBufSurface 的 Gstbuffer 的地址

  • batchID – 要处理的帧的 batch_id。这表示帧在 NvBufSurface 中的索引

nvds_acquire_meta_lock

pyds.nvds_acquire_meta_lock(batch_meta: pyds.NvDsBatchMeta) None

在更新元数据之前获取锁。

参数:

batch_metaNvDsBatchMeta 类型的对象

nvds_release_meta_lock

pyds.nvds_release_meta_lock(batch_meta: pyds.NvDsBatchMeta) None

更新元数据后释放锁。

参数:

batch_metaNvDsBatchMeta 类型的对象

nvds_create_batch_meta

pyds.nvds_create_batch_meta(max_batch_size: int) pyds.NvDsBatchMeta

创建给定批大小的 NvDsBatchMeta

参数:

max_batch_size – 批次中可能存在的最大帧数

返回值:

已分配的 NvDsBatchMeta 对象

nvds_destroy_batch_meta

pyds.nvds_destroy_batch_meta(batch_meta: pyds.NvDsBatchMeta) int

删除/释放给定的 NvDsBatchMeta batch_meta 对象。

参数:

batch_meta – 使用后要删除/销毁的 NvDsBatchMeta 类型的对象

nvds_acquire_frame_meta_from_pool

pyds.nvds_acquire_frame_meta_from_pool(batch_meta: pyds.NvDsBatchMeta) pyds.NvDsFrameMeta

从 frame_meta 池获取 NvDsFrameMeta。用户必须从 frame_meta 池获取 frame_meta 以填充帧元数据。

参数:

batch_meta – 从中获取 NvDsFrameMetaNvDsBatchMeta 类型的对象

返回值:

从帧元数据池获取的 NvDsFrameMeta 对象

nvds_add_frame_meta_to_batch

pyds.nvds_add_frame_meta_to_batch(batch_meta: pyds.NvDsBatchMeta, frame_meta: pyds.NvDsFrameMeta) None

在获取并填充帧元数据后,用户必须使用此 API 将其添加到批次元数据。

参数:

nvds_remove_frame_meta_from_batch

pyds.nvds_remove_frame_meta_from_batch(batch_meta: pyds.NvDsBatchMeta, frame_meta: pyds.NvDsFrameMeta) None

从批次元数据中删除给定的帧元数据。

参数:
  • batch_meta – 要从中删除 frame_meta 的 NvDsBatchMeta 类型的对象。

  • frame_meta – 要从 batch_meta 中删除的 NvDsFrameMeta 类型的对象。

nvds_acquire_obj_meta_from_pool

pyds.nvds_acquire_obj_meta_from_pool(batch_meta: pyds.NvDsBatchMeta) pyds.NvDsObjectMeta

从对象元数据池获取 NvDsObjectMeta。用户必须从对象元数据池获取对象元数据以填充对象元数据。

参数:

batch_meta – 从中获取 NvDsObjectMetaNvDsBatchMeta 类型的对象

返回值:

从对象元数据池获取的 NvDsObjectMeta 对象

nvds_remove_obj_meta_from_frame

pyds.nvds_remove_obj_meta_from_frame(frame_meta: pyds.NvDsFrameMeta, obj_meta: pyds.NvDsObjectMeta) None

从帧元数据中删除给定的对象元数据。

参数:
  • frame_meta – 要从中删除 obj_meta 的 NvDsFrameMeta 类型的对象。

  • obj_meta – 要从 frame_meta 中删除的 NvDsObjectMeta 类型的对象。

nvds_acquire_classifier_meta_from_pool

pyds.nvds_acquire_classifier_meta_from_pool(batch_meta: pyds.NvDsBatchMeta) pyds.NvDsClassifierMeta

从分类器元数据池获取 NvDsClassifierMeta。用户必须从分类器元数据池获取分类器元数据以填充分类器元数据。

参数:

batch_meta – 从中获取 NvDsClassifierMetaNvDsBatchMeta 类型的对象

返回值:

从分类器元数据池获取的 NvDsClassifierMeta 对象

nvds_add_classifier_meta_to_object

pyds.nvds_add_classifier_meta_to_object(obj_meta: pyds.NvDsObjectMeta, classifier_meta: pyds.NvDsClassifierMeta) None

在获取并填充分类器元数据后,用户必须使用此 API 将其添加到对象元数据。

参数:

nvds_remove_classifier_meta_from_obj

pyds.nvds_remove_classifier_meta_from_obj(obj_meta: pyds.NvDsObjectMeta, classifier_meta: pyds.NvDsClassifierMeta) None

从对象元数据中移除给定的 classifier meta。

参数:
  • obj_meta – 类型为 NvDsObjectMeta 的对象,要从中移除 classifier_meta。

  • classifier_meta – 类型为 NvDsClassifierMeta 的对象,要从 obj_meta 中移除。

nvds_acquire_display_meta_from_pool

pyds.nvds_acquire_display_meta_from_pool(batch_meta: pyds.NvDsBatchMeta) pyds.NvDsDisplayMeta

从 display meta pool 中获取 NvDsDisplayMeta。用户必须从 display meta pool 中获取 display meta 以填充显示元数据。

参数:

batch_meta – 类型为 NvDsBatchMeta 的对象,将从中获取 NvDsDisplayMeta

返回值:

从 display meta pool 中获取的 NvDsDisplayMeta 对象

nvds_add_display_meta_to_frame

pyds.nvds_add_display_meta_to_frame(frame_meta: pyds.NvDsFrameMeta, display_meta: pyds.NvDsDisplayMeta) None

在获取并填充分类器元数据后,用户必须使用此 API 将其添加到帧元数据中。

参数:

nvds_remove_display_meta_from_frame

pyds.nvds_remove_display_meta_from_frame(frame_meta: pyds.NvDsFrameMeta, display_meta: pyds.NvDsDisplayMeta) None

从帧元数据中移除给定的 display meta。

参数:
  • frame_meta – 类型为 NvDsFrameMeta 的对象,要从中移除 display_meta。

  • display_meta – 类型为 NvDsDisplayMeta 的对象,要从 frame_meta 中移除。

nvds_acquire_label_info_meta_from_pool

pyds.nvds_acquire_label_info_meta_from_pool(batch_meta: pyds.NvDsBatchMeta) pyds.NvDsLabelInfo

从给定 NvDsBatchMeta 的 labelinfo meta pool 中获取 NvDsLabelInfo。用户必须从 labelinfo meta pool 中获取 labelinfo meta 以填充 labelinfo 元数据。

参数:

batch_meta – 类型为 NvDsBatchMeta 的对象,将从中获取 NvDsLabelInfo

返回值:

从 label info meta pool 中获取的类型为 NvDsLabelInfo 的对象

nvds_add_label_info_meta_to_classifier

pyds.nvds_add_label_info_meta_to_classifier(classifier_meta: pyds.NvDsClassifierMeta, label_info_meta: pyds.NvDsLabelInfo) None

在获取并填充 labelinfo 元数据后,用户必须使用此 API 将其添加到分类器元数据中。

参数:

nvds_remove_label_info_meta_from_classifier

pyds.nvds_remove_label_info_meta_from_classifier(classifier_meta: pyds.NvDsClassifierMeta, label_info_meta: pyds.NvDsLabelInfo) None

从分类器元数据中移除给定的 labelinfo meta

参数:
  • classifier_meta – 类型为 NvDsClassifierMeta 的对象,要从中移除 label_info_meta。

  • label_info_meta – 类型为 NvDsLabelInfo 的对象,要从 classifier_meta 中移除。

nvds_add_user_meta_to_batch

pyds.nvds_add_user_meta_to_batch(batch_meta: pyds.NvDsBatchMeta, user_meta: pyds.NvDsUserMeta) None

在获取并填充 user 元数据后,如果需要在批处理级别,用户必须使用此 API 将其添加到批处理元数据中。

参数:

nvds_add_user_meta_to_frame

pyds.nvds_add_user_meta_to_frame(frame_meta: pyds.NvDsFrameMeta, user_meta: pyds.NvDsUserMeta) None

在获取并填充 user 元数据后,如果需要在帧级别,用户必须使用此 API 将其添加到帧元数据中。

参数:

nvds_add_user_meta_to_obj

pyds.nvds_add_user_meta_to_obj(obj_meta: pyds.NvDsObjectMeta, user_meta: pyds.NvDsUserMeta) None

在获取并填充 user 元数据后,如果需要在对象级别,用户必须使用此 API 将其添加到对象元数据中。

参数:

nvds_acquire_user_meta_from_pool

pyds.nvds_acquire_user_meta_from_pool(batch_meta: pyds.NvDsBatchMeta) pyds.NvDsUserMeta

从 user meta pool 中获取 NvDsUserMeta。用户必须从 user meta pool 中获取 user meta 以填充用户元数据。

参数:

batch_meta – 类型为 NvDsBatchMeta 的对象,将从中获取 NvDsUserMeta

nvds_remove_user_meta_from_batch

pyds.nvds_remove_user_meta_from_batch(batch_meta: pyds.NvDsBatchMeta, user_meta: pyds.NvDsUserMeta) None

从批处理元数据中移除给定的 user 元数据。

参数:
  • batch_meta – 类型为 NvDsBatchMeta 的对象,要从中移除 user_meta。

  • user_meta – 类型为 NvDsUserMeta 的对象,要从 batch_meta 中移除。

返回值:

从 user meta pool 中获取的 NvDsUserMeta 对象

nvds_remove_user_meta_from_frame

pyds.nvds_remove_user_meta_from_frame(frame_meta: pyds.NvDsFrameMeta, user_meta: pyds.NvDsUserMeta) None

从帧元数据中移除给定的 user 元数据。

参数:
  • frame_meta – 类型为 NvDsFrameMeta 的对象,要从中移除 user_meta。

  • user_meta – 类型为 NvDsUserMeta 的对象,要从 frame_meta 中移除。

nvds_remove_user_meta_from_object

pyds.nvds_remove_user_meta_from_object(obj_meta: pyds.NvDsObjectMeta, user_meta: pyds.NvDsUserMeta) None

从对象元数据中移除给定的 user 元数据。

参数:
  • obj_meta – 类型为 NvDsObjectMeta 的对象,要从中移除 user_meta。

  • user_meta – 类型为 NvDsUserMeta 的对象,要从 obj_meta 中移除。

nvds_get_current_metadata_info

pyds.nvds_get_current_metadata_info(batch_meta: pyds.NvDsBatchMeta) int

用于获取当前元数据信息的调试函数。

参数:

batch_metaNvDsBatchMeta 类型的对象

nvds_batch_meta_copy_func

pyds.nvds_batch_meta_copy_func(data: capsule, user_meta: capsule) capsule

用于复制 batch_meta 的复制函数。当 meta_data 需要从一个缓冲区复制/转换到另一个缓冲区时调用。 meta_data 和 user_data 作为参数传递。

参数:
  • data – 类型为 NvDsBatchMeta 的对象

  • user_data – 用户特定数据的对象

返回值:

可以类型转换为 NvDsBatchMeta 的对象

nvds_batch_meta_release_func

pyds.nvds_batch_meta_release_func(data: capsule, user_data: capsule) None

当 meta_data 即将被释放时调用的 batch_meta 释放函数。

参数:
  • data – 类型为 NvDsBatchMeta 的对象

  • user_data – 用户特定数据的对象

nvds_get_nth_frame_meta

pyds.nvds_get_nth_frame_meta(frame_meta_list: pyds.GList, index: int) pyds.NvDsFrameMeta

检索索引处的帧的 NvDsFrameMeta 对象。

参数:
返回值:

来自 frame_meta_list 的类型为 NvDsFrameMeta 的对象

nvds_clear_frame_meta_list

nvds_clear_obj_meta_list

pyds.nvds_clear_obj_meta_list(frame_meta: pyds.NvDsFrameMeta, meta_list: pyds.GList) None

移除帧元数据中存在的所有对象元数据。

参数:
  • frame_meta – 类型为 NvDsFrameMeta 的对象,需要从中清除 NvDsObjectMetaList

  • meta_list – 需要清除的类型为 NvDsObjectMetaList 的对象

nvds_clear_display_meta_list

pyds.nvds_clear_display_meta_list(frame_meta: pyds.NvDsFrameMeta, meta_list: pyds.GList) None

移除帧元数据中存在的所有显示元数据。

参数:
  • frame_meta – 类型为 NvDsFrameMeta 的对象,需要从中清除 NvDisplayMetaList

  • meta_list – 需要清除的类型为 NvDisplayMetaList 的对象

nvds_clear_batch_user_meta_list

pyds.nvds_clear_batch_user_meta_list(batch_meta: pyds.NvDsBatchMeta, meta_list: pyds.GList) None

移除批处理元数据中存在的所有用户元数据

参数:
  • batch_meta – 类型为 NvDsBatchMeta 的对象,需要从中清除 NvDsUserMetaList

  • meta_list – 需要清除的类型为 NvDsUserMetaList 的对象

nvds_clear_frame_user_meta_list

pyds.nvds_clear_frame_user_meta_list(frame_meta: pyds.NvDsFrameMeta, meta_list: pyds.GList) None

移除帧元数据中存在的所有用户元数据

参数:
  • frame_meta – 类型为 NvDsFrameMeta 的对象,需要从中清除 NvDsUserMetaList

  • meta_list – 需要清除的类型为 NvDsUserMetaList 的对象

nvds_clear_obj_user_meta_list

pyds.nvds_clear_obj_user_meta_list(object_meta: pyds.NvDsObjectMeta, meta_list: pyds.GList) None

移除对象元数据中存在的所有用户元数据

参数:
  • object_meta – 类型为 NvDsObjectMeta 的对象,需要从中清除 NvDsUserMetaList

  • meta_list – 需要清除的类型为 NvDsUserMetaList 的对象

nvds_clear_meta_list

pyds.nvds_clear_meta_list(batch_meta: pyds.NvDsBatchMeta, meta_list: pyds.GList, meta_pool: pyds.NvDsMetaPool) pyds.GList

移除给定元数据列表中存在的所有元数据元素

参数:
  • batch_metaNvDsBatchMeta 类型的对象

  • meta_list – 需要清除的类型为 NvDsMetaList 的对象

  • meta_pool – 类型为 NvDsMetaPool 的对象,列表属于该对象

返回值:

更新后的元数据列表对象

nvds_copy_batch_user_meta_list

pyds.nvds_copy_batch_user_meta_list(src_user_meta_list: pyds.GList, dst_batch_meta: pyds.NvDsBatchMeta) None

将 src_user_meta_list 深度复制到 dst_batch_meta 中存在的用户元数据列表。

参数:
  • src_user_meta_list – 类型为 NvDsUserMetaList 的对象

  • dst_batch_meta – 类型为 NvDsBatchMeta 的对象

nvds_copy_frame_user_meta_list

pyds.nvds_copy_frame_user_meta_list(src_user_meta_list: pyds.GList, dst_frame_meta: pyds.NvDsFrameMeta) None

将 src_user_meta_list 深度复制到 dst_frame_meta 中存在的用户元数据列表。

参数:
  • src_user_meta_list – 类型为 NvDsUserMetaList 的对象

  • dst_frame_meta – 类型为 NvDsFrameMeta 的对象

nvds_copy_display_meta_list

pyds.nvds_copy_display_meta_list(src_display_meta: pyds.GList, dst_frame_meta: pyds.NvDsFrameMeta) None

将 src_display_meta_list 深度复制到 dst_frame_meta 中存在的显示元数据列表。

参数:
  • src_display_meta_list – 类型为 NvDisplayMetaList 的对象

  • dst_frame_meta – 类型为 NvDsFrameMeta 的对象

nvds_copy_frame_meta_list

pyds.nvds_copy_frame_meta_list(src_frame_meta_list: pyds.GList, dst_batch_meta: pyds.NvDsBatchMeta) None

将 src_frame_meta_list 深度复制到 dst_batch_meta 中存在的帧元数据列表。

参数:
  • src_frame_meta_list – 类型为 NvDsFrameMetaList 的对象

  • dst_batch_meta – 类型为 NvDsBatchMeta 的对象

nvds_get_user_meta_type

pyds.nvds_get_user_meta_type(meta_descriptor: str) int

从给定的描述用户特定元数据的字符串生成唯一的用户元数据类型。

参数:

meta_descriptor – 描述元数据的字符串对象。

字符串的格式应如下所示

ORG_NAME.COMPONENT_NAME.METADATA_DESCRIPTION。

例如 (NVIDIA.NVINFER.TENSOR_METADATA)

nvds_copy_obj_meta_list

pyds.nvds_copy_obj_meta_list(src_obj_meta_list: pyds.GList, dst_object_meta: pyds.NvDsFrameMeta) None

将 src_obj_meta_list 深度复制到 dst_frame_meta 中存在的帧元数据列表。

参数:
  • src_obj_meta_list – 类型为 NvDsObjectMetaList 的对象

  • dst_frame_meta – 类型为 NvDsFrameMeta 的对象

nvds_get_user_meta_type

pyds.nvds_get_user_meta_type(meta_descriptor: str) int

从给定的描述用户特定元数据的字符串生成唯一的用户元数据类型。

参数:

meta_descriptor – 描述元数据的字符串对象。

字符串的格式应如下所示

ORG_NAME.COMPONENT_NAME.METADATA_DESCRIPTION。

例如 (NVIDIA.NVINFER.TENSOR_METADATA)

gst_buffer_add_nvds_meta

pyds.gst_buffer_add_nvds_meta(buffer: _GstBuffer, meta_data: capsule, user_data: capsule, copy_func: void* (void*, void*), release_func: void (void*, void*)) _NvDsMeta

将类型为 NvDsMeta 的 GstMeta 添加到 GstBuffer,并设置 NvDsMetameta_data 成员。

参数:
  • buffer – 功能向其添加元数据的 GstBuffer。

  • meta_data – 功能为其设置 NvDsMeta 的 meta_data 成员的对象。

  • user_data – 用户特定的数据对象

  • copy_func – 当要复制 NvDsMeta 时要调用的 NvDsMetaCopyFunc 函数。该函数使用 meta_data 和 user_data 作为参数调用。NvDsMeta 将被销毁。该函数使用 meta_data 和 user_data 作为参数调用。

返回值:

附加到 NvDsMeta 对象的对象;如果失败,则为 NONE

gst_buffer_get_nvds_batch_meta

pyds.gst_buffer_get_nvds_batch_meta(buffer: int) pyds.NvDsBatchMeta

获取添加到 GstBuffer 的 NvDsBatchMeta

参数:

buffer – 要从中检索 NvDsBatchMeta 的 GstBuffer

返回值:

从缓冲区检索的 NvDsBatchMeta 对象

例如: batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))

user_copyfunc

pyds.user_copyfunc(meta: pyds.NvDsUserMeta, func: Callable[[capsule, capsule], capsule]) None

设置给定 NvDsUserMeta 对象的复制回调函数。

参数:
  • meta – 要设置复制函数的 NvDsUserMeta

  • func – 用户编写的复制函数

user_releasefunc

pyds.user_releasefunc(meta: pyds.NvDsUserMeta, func: Callable[[capsule, capsule], None]) None

设置给定 NvDsUserMeta 对象的释放回调函数。

参数:
  • meta – 要设置释放函数的 NvDsUserMeta

  • func – 用户编写的释放函数

alloc_buffer

pyds.alloc_buffer(size: int) int

分配给定大小的缓冲区。

参数:

size – 要分配的内存大小

返回值:

已分配缓冲区的 C 地址

free_buffer

pyds.free_buffer(buffer: int) None

释放给定缓冲区的内存。

参数:

buffer – 要释放的缓冲区的 C 地址

free_gbuffer

pyds.free_gbuffer(buffer: capsule) None

释放给定 gbuffer 的内存。

参数:

buffer – 指向要释放的缓冲区的 gpointer

get_string

pyds.get_string(ptr: int) str

将给定指针强制转换为字符串。

参数:

ptr – 字符串的 C 地址

返回值:

对字符串对象的引用

get_ptr

pyds.get_ptr(ptr: capsule) int

获取给定对象的 C 地址。

参数:

ptr – 要检索 C 地址“指针”的对象

返回值:

给定数据的 C 地址

alloc_nvds_vehicle_object

pyds.alloc_nvds_vehicle_object() pyds.NvDsVehicleObject

分配一个 NvDsVehicleObject

返回值:

已分配的 NvDsVehicleObject

alloc_nvds_person_object

pyds.alloc_nvds_person_object() pyds.NvDsPersonObject

分配一个 NvDsPersonObject

返回值:

已分配的 NvDsPersonObject

alloc_nvds_face_object

pyds.alloc_nvds_face_object() pyds.NvDsFaceObject

分配一个 NvDsFaceObject

返回值:

已分配的 NvDsFaceObject

alloc_nvds_event_msg_meta

pyds.alloc_nvds_event_msg_meta(arg0: pyds.NvDsUserMeta) pyds.NvDsEventMsgMeta

分配一个 NvDsEventMsgMeta

参数:

user_meta – 从 NvDsBatchMeta 中存在的 user_meta_pool 获取的类型为 NvDsUserMeta 的对象

返回值:

已分配的 NvDsEventMsgMeta

alloc_nvds_event

pyds.alloc_nvds_event() pyds.NvDsEvent

分配一个 NvDsEvent

返回值:

已分配的 NvDsEvent

generate_ts_rfc3339

pyds.generate_ts_rfc3339(buffer: int, size: int) None

生成 RFC3339 时间戳。

参数:
  • buffer – 时间戳内容复制到的缓冲区

  • size – 最大时间戳长度

alloc_nvds_payload

pyds.alloc_nvds_payload() pyds.NvDsPayload

分配一个 NvDsPayload

返回值:

已分配的 NvDsPayload

NvBufSurfaceCreate

pyds.NvBufSurfaceCreate(surf: NvBufSurface, batchSize: int, params: NvBufSurfaceCreateParams) int

分配批量缓冲区。

为 batchSize 缓冲区分配内存,并在 surf 对象中返回已分配的 NvBufSurface。params 对象应具有单个对象的分配参数。如果 params 中的 size 字段已设置,则将分配该大小的缓冲区,并且所有其他参数(w、h、颜色格式等)将被忽略。

使用 NvBufSurfaceDestroy() 释放所有资源。

参数:
  • surf – 指向已分配的批量缓冲区的指针。

  • batchSize – 缓冲区的批次大小。

  • params – 指向 NvBufSurfaceCreateParams 结构的指针。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceDestroy

pyds.NvBufSurfaceDestroy(surf: NvBufSurface) int

释放先前通过 NvBufSurfaceCreate 分配的批量缓冲区。

参数:

surf – 要释放的 NvBufSurface 对象。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceMap

pyds.NvBufSurfaceMap(surf: NvBufSurface, index: int, plane: int, type: NvBufSurfaceMemMapFlags) int

将 HW 批量缓冲区映射到 HOST CPU 地址空间。

对于 dGPU 的 NVBUF_MEM_CUDA_UNIFIED 类型内存以及 Jetson 的 NVBUF_MEM_SURFACE_ARRAY 和 NVBUF_MEM_HANDLE 类型内存有效。

此函数将使用 CPU 映射的内存指针填充 NvBufSurfaceParamsNvBufSurfaceMappedAddr 字段的 addr 数组。

客户端必须在 CPU 中访问映射的内存之前,使用此函数填充的虚拟地址调用 NvBufSurfaceSyncForCpu()

内存映射完成后,CPU 和硬件设备之间必须协调映射的内存修改,如下所示
  • CPU: 如果 CPU 修改任何映射内存,客户端必须在任何硬件设备访问内存之前调用 NvBufSurfaceSyncForDevice()

  • 硬件设备: 如果映射内存被任何硬件设备修改,客户端必须在 CPU 访问内存之前调用 NvBufSurfaceSyncForCpu()

使用 NvBufSurfaceUnMap() 来取消映射缓冲区并释放任何资源。

参数:
  • surf – 指向 NvBufSurface 结构的指针。

  • index – 批次中缓冲区的索引。-1 表示批次中所有缓冲区。

  • plane – 缓冲区中平面的索引。-1 表示缓冲区中所有平面。

  • type – 映射类型的标志。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceUnMap

pyds.NvBufSurfaceUnMap(surf: NvBufSurface, index: int, plane: int) int

取消映射先前映射的缓冲区。

参数:
  • surf – 指向 NvBufSurface 结构的指针。

  • index – 批次中缓冲区的索引。-1 表示批次中所有缓冲区。

  • plane – 缓冲区中平面的索引。-1 表示缓冲区中所有平面。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceCopy

pyds.NvBufSurfaceCopy(srcSurf: NvBufSurface, dstSurf: NvBufSurface) int

将源批处理缓冲区的内容复制到目标批处理缓冲区的内存。

此函数可用于将一种内存类型的源缓冲区复制到不同内存类型的目标缓冲区。例如,从 CUDA 主机到 CUDA 设备,或从 malloced 内存到 CUDA 设备等。

源和目标 NvBufSurface 必须具有相同的缓冲区和批次大小。

参数:
返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceSyncForCpu

pyds.NvBufSurfaceSyncForCpu(surf: NvBufSurface, index: int, plane: int) int

为 CPU 同步硬件内存缓存。

仅对 NVBUF_MEM_SURFACE_ARRAY 和 NVBUF_MEM_HANDLE 内存类型有效。

参数:
  • surf – 指向 NvBufSurface 结构的指针。

  • index – 批次中缓冲区的索引。-1 表示批次中所有缓冲区。

  • plane – 缓冲区中平面的索引。-1 表示缓冲区中所有平面。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceSyncForDevice

pyds.NvBufSurfaceSyncForDevice(surf: NvBufSurface, index: int, plane: int) int

为设备同步硬件内存缓存。

仅对 NVBUF_MEM_SURFACE_ARRAY 和 NVBUF_MEM_HANDLE 内存类型有效。

参数:
  • surf – 指向 NvBufSurface 结构的指针。

  • index – 批次中缓冲区的索引。-1 表示批次中所有缓冲区。

  • plane – 缓冲区中平面的索引。-1 表示缓冲区中所有平面。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceFromFd

pyds.NvBufSurfaceFromFd(dmabuf: int, buffer: capsule) int

从 dmabuf fd 获取 NvBufSurface

参数:
  • dmabuf_fd – 缓冲区的 dmabuf fd。

  • buffer – 指向 NvBufSurface 的指针。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceMemSet

pyds.NvBufSurfaceMemSet(surf: NvBufSurface, index: int, plane: int, value: int) int

使用提供的值填充 NvBufSurface 中缓冲区(组)的每个字节。

此函数也可用于重置批次中的缓冲区。

参数:
  • surf – 指向 NvBufSurface 结构的指针。

  • index – 批次中缓冲区的索引。-1 表示批次中所有缓冲区。

  • plane – 缓冲区中平面的索引。-1 表示缓冲区中所有平面。

  • value – 要设置的值。

返回值:

成功返回 0,失败返回 -1。

NvBufSurfaceMapEglImage

pyds.NvBufSurfaceMapEglImage(surf: NvBufSurface, index: int) int

NvBufSurface 缓冲区内存创建 EGLImage。

仅支持内存类型 NVBUF_MEM_SURFACE_ARRAY。此函数将使用 EGLImageKHR 设置 NvBufSurfaceMappedAddr 字段的 eglImage 指针 NvBufSurfaceParams

此函数可用于需要在 Jetson 硬件内存 (NVBUF_MEM_SURFACE_ARRAY) 上进行 CUDA 操作的场景。此函数提供的 EGLImageKHR 随后可以注册到 CUDA 以进行进一步的 CUDA 操作。

参数:
  • surf – 指向 NvBufSurface 结构的指针。

  • index – 批次中缓冲区的索引。-1 表示批次中所有缓冲区。

返回值:

成功返回 0,失败返回 -1。

nvds_measure_buffer_latency

pyds.nvds_measure_buffer_latency(gst_buffer: int) int

测量当前批次中所有帧的延迟。

参数:

buffer – 要从中检索 NvDsBatchMeta 的 GstBuffer

返回值:

批次中的源数量。

用法示例

#enable pipeline latency measurement
export NVDS_ENABLE_LATENCY_MEASUREMENT=1
#enable compoment latency measurement
export NVDS_ENABLE_COMPONENT_LATENCY_MEASUREMENT=1

#add this code in plugin probe function.
num_sources_in_batch = pyds.nvds_measure_buffer_latency(hash(gst_buffer));

nvds_obj_enc_create_context

pyds.nvds_obj_enc_create_context(arg0: int) int

创建上下文并返回 NvObjEncCtx 的句柄。

参数:

gpu_id – gpu id。

返回值:

NvObjEncCtx 的句柄。

nvds_obj_enc_process

pyds.nvds_obj_enc_process(ctx: int, args: _NvDsObjEncUsrArgs, gst_buffer: int, obj_meta: pyds.NvDsObjectMeta, frame_meta: pyds.NvDsFrameMeta) bool

将对象裁剪排队以进行 JPEG 编码。这是一个非阻塞调用,用户应调用 nvds_obj_enc_finish() 以确保所有排队的对象裁剪都已处理。

参数:
  • context – NvObjEncCtx 的句柄。

  • argsNvDsObjEncUsrArgs 类型的对象。

  • buffer – 从中检索 NvBufSurface 的 GstBuffer

  • obj_metaNvDsOjbectMeta 类型的对象。

  • frame_metaNvDsFrameMeta 类型的对象。

返回值:

成功返回 0,失败返回 -1。

nvds_obj_enc_finish

pyds.nvds_obj_enc_finish(ctx: int) None

等待所有排队的对象裁剪被编码。

参数:

context – NvObjEncCtx 的句柄。

nvds_obj_enc_destroy_context

pyds.nvds_obj_enc_destroy_context(ctx: int) None

销毁 NvObjEncCtx 上下文。

参数:

context – NvObjEncCtx 的句柄。