GstBuffer
là đơn vị cơ bản của truyền dữ liệu trong GStreamer. Mỗi GstBuffer
có metadata liên quan. DeepStream SDK đính kèm mỗi đối tượng DeepStream metada, NvDsBatchMeta, được mô tả trong các phần sau.
NvDsBatchMeta: Basic Metadata Structure
DeepStream sử dụng dụng cấu trúc tiêu chuẩn có thể mở rộng cho metadata. Cấu trúc metadata cơ bản NvDsBatchMeta
bắt đầu với batch cấp độ metadata, được tạo bên trong plugin Gst-nvstreammux
. Cấu trúc metadata con chứa frame, object, classifier, và label data. DeepStream cũng cung cấp một cơ chế cho phép thêm metadata dành riêng cho người dùng ở cấp độ batch, frame hoặc object. DeepStream đính kèm metadata vào một GtsBuffer
bằng cách đính kèm một structure NvDsBatchMeta và đặt GstNvDsMetaType.meta.type
thành NVDS_BATCH_META
trong plugin Gst-nvstreammux
. Khi ứng dụng của bạn xử lý GstBuffer
, nó có thể lặp đi lặp lại metadata đã đính kèm để tìm NVDS_BATCH_GST_META
. Hàm gst_buffer_get_nvds_batch_meta()
này trích xuất NvDsBatchMeta
từ GstBuffer
.
Hình 1: DeepStream Plugin metadata
User/Custom Metadata Addition inside NvDsBatchMeta
Để đính kèm người dùng cụ thể metadata ở cấp độ batch, frame hoặc object với NvDsBatchMeta, bạn phải lấy một phiên bản NvDsUserMeta
từ nhóm người dùng meta bằng cách gọi vds_acquire_user_meta_from_pool()
(Xem chi tiết sources/includes/nvdsmeta.h
). Sau đó bạn phải khởi tạo NvDsUserMeta
. Các thành viên bạn phải đặt là user_meta_data
, meta_type
, copy_funce
, và release_func
. Chi tiết hơn, xem mã nguồn ứng dụng mẫu trong sources/apps/sample_apps/deepstream-user-metadata-test/deepstream_user_metadata_app.c
.