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
中获得。- 参数:
data –
NvDsInferSegmentationMeta
类型的对象
get_optical_flow_vectors¶
- pyds.get_optical_flow_vectors(data: capsule) numpy.ndarray[numpy.float32] ¶
- 参数:
of_meta –
NvDsOpticalFlowMeta
类型的对象- 返回值:
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_meta –
NvDsBatchMeta
类型的对象
nvds_release_meta_lock¶
- pyds.nvds_release_meta_lock(batch_meta: pyds.NvDsBatchMeta) None ¶
更新元数据后释放锁。
- 参数:
batch_meta –
NvDsBatchMeta
类型的对象
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 – 从中获取
NvDsFrameMeta
的NvDsBatchMeta
类型的对象- 返回值:
从帧元数据池获取的
NvDsFrameMeta
对象
nvds_add_frame_meta_to_batch¶
- pyds.nvds_add_frame_meta_to_batch(batch_meta: pyds.NvDsBatchMeta, frame_meta: pyds.NvDsFrameMeta) None ¶
在获取并填充帧元数据后,用户必须使用此 API 将其添加到批次元数据。
- 参数:
batch_meta – 要附加 frame_meta 的
NvDsBatchMeta
类型的对象。frame_meta – 从
NvDsBatchMeta
中存在的 frame_meta_pool 获取的NvDsFrameMeta
类型的对象
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 – 从中获取
NvDsObjectMeta
的NvDsBatchMeta
类型的对象- 返回值:
从对象元数据池获取的
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 – 从中获取
NvDsClassifierMeta
的NvDsBatchMeta
类型的对象- 返回值:
从分类器元数据池获取的
NvDsClassifierMeta
对象
nvds_add_classifier_meta_to_object¶
- pyds.nvds_add_classifier_meta_to_object(obj_meta: pyds.NvDsObjectMeta, classifier_meta: pyds.NvDsClassifierMeta) None ¶
在获取并填充分类器元数据后,用户必须使用此 API 将其添加到对象元数据。
- 参数:
obj_meta – 类型为
NvDsObjectMeta
的对象,classifier_meta 将附加到该对象。classifier_meta – 类型为
NvDsClassifierMeta
的对象,从NvDsBatchMeta
中的 classifier_meta_pool 获取。
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 将其添加到帧元数据中。
- 参数:
frame_meta – 类型为
NvDsFrameMeta
的对象,display_meta 将附加到该对象。display_meta – 类型为
NvDsDisplayMeta
的对象,从NvDsBatchMeta
中的 display_meta_pool 获取。
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 将其添加到分类器元数据中。
- 参数:
classifier_meta – 类型为
NvDsClassifierMeta
的对象,label_info_meta 将附加到该对象。label_info_meta – 类型为
NvDsLabelInfo
的对象,从NvDsBatchMeta
中的 label_info_meta_pool 获取。
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 将其添加到批处理元数据中。
- 参数:
batch_meta – 类型为
NvDsBatchMeta
的对象,user_meta 将附加到该对象。user_meta – 类型为
NvDsUserMeta
的对象,从NvDsBatchMeta
中的 user_meta_pool 获取。
nvds_add_user_meta_to_frame¶
- pyds.nvds_add_user_meta_to_frame(frame_meta: pyds.NvDsFrameMeta, user_meta: pyds.NvDsUserMeta) None ¶
在获取并填充 user 元数据后,如果需要在帧级别,用户必须使用此 API 将其添加到帧元数据中。
- 参数:
frame_meta – 类型为
NvDsFrameMeta
的对象,user_meta 将附加到该对象。user_meta – 类型为
NvDsUserMeta
的对象,从NvDsBatchMeta
中的 user_meta_pool 获取。
nvds_add_user_meta_to_obj¶
- pyds.nvds_add_user_meta_to_obj(obj_meta: pyds.NvDsObjectMeta, user_meta: pyds.NvDsUserMeta) None ¶
在获取并填充 user 元数据后,如果需要在对象级别,用户必须使用此 API 将其添加到对象元数据中。
- 参数:
obj_meta – 类型为
NvDsObjectMeta
的对象,user_meta 将附加到该对象。user_meta – 类型为
NvDsUserMeta
的对象,从NvDsBatchMeta
中的 user_meta_pool 获取。
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_meta –
NvDsBatchMeta
类型的对象
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
的对象列表index – 需要访问
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_meta –
NvDsBatchMeta
类型的对象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¶
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 映射的内存指针填充
NvBufSurfaceParams
的NvBufSurfaceMappedAddr
字段的 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
必须具有相同的缓冲区和批次大小。- 参数:
srcSurf – 指向源
NvBufSurface
结构的指针。dstSurf – 指向目标
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 的句柄。
args –
NvDsObjEncUsrArgs
类型的对象。buffer – 从中检索
NvBufSurface
的 GstBufferobj_meta –
NvDsOjbectMeta
类型的对象。frame_meta –
NvDsFrameMeta
类型的对象。
- 返回值:
成功返回 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 的句柄。