Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU): Jetson
• DeepStream Version: 6.0.1
• JetPack Version (valid for Jetson only):4.6.1
• TensorRT Version:8.2.1
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs):question
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
Hello.
I want to do the following, but it does not work
Configuration:
- Input:
4 streams (rtsp :resolution 1920x1080 - Pipeline:
nvstreammux->nvinfer->nvtiler->nvosd->nv3dsink - Parameters for nvstreammux:
streammux.set_property(“width”, 1920)
streammux.set_property(“height”, 1080)
streammux.set_property(“batch-size”, 4)
streammux.set_property(“batched-push-timeout”, 3333333)
streammux.set_property(‘live-source’, 1)
streammux.set_property(‘sync-inputs’, 1) - Parameters for nvtiler:
tiler.set_property(“rows”, 2)
tiler.set_property(“columns”, 2)
tiler.set_property(“width”, 1920)
tiler.set_property(“height”, 1080)
Question:
- The Nvtiler callback registered in the main function does not draw arrows for each stream.
It appears to be drawing to 1920x1080 specified in streammux. Why is this?
By the way, I am able to draw a rectangle per stream.
sourc(some):
def tiler_sink_pad_buffer_probe(pad,info,u_data,):
gst_buffer = info.get_buffer()
batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
l_frame = batch_meta.frame_meta_list
while l_frame is not None:
try:
frame_meta = pyds.NvDsFrameMeta.cast(l_frame.data)
except StopIteration:
break
l_user = frame_meta.frame_user_meta_list
while l_user is not None:
try:
user_meta=pyds.NvDsUserMeta.cast(l_user.data)
if user_meta.base_meta.meta_type == pyds.NvDsMetaType.NVDSINFER_TENSOR_OUTPUT_META:
tensor_meta=pyds.NvDsInferTensorMeta.cast(user_meta.user_meta_data)
parse_test_from_tensor_meta(batch_meta, frame_meta, tensor_meta, gst_buffer, 'tiler')
except StopIteration:
break
try:
l_user=l_user.next
except StopIteration:
break
try:
l_frame=l_frame.next
except StopIteration:
break
return Gst.PadProbeReturn.OK
def parse_area_from_tensor_meta(batch_meta, frame_meta):
draw(batch_meta, frame_meta)
def draw(batch_meta, frame_meta):
display_meta = pyds.nvds_acquire_display_meta_from_pool(batch_meta)
display_meta.num_rects = 1
rect_params = display_meta.rect_params[0]
rect_params.left = 10
rect_params.top = 100
rect_params.width = 500
rect_params.height = 300
rect_params.border_width = 5
rect_params.border_color.set(255, 0, 0, 1)
rect_params.has_bg_color = 0
pyds.nvds_add_display_meta_to_frame(frame_meta, display_meta)
display_meta=pyds.nvds_acquire_display_meta_from_pool(batch_meta)
display_meta.num_arrows = 1
arrow_params = display_meta.arrow_params[0]
arrow_params.x1 = 100
arrow_params.y1 = 400
arrow_params.x2 = 1000
arrow_params.y2 = 600
arrow_params.arrow_width = 5
arrow_params.arrow_color.set(0, 255, 0, 1.0)
arrow_params.arrow_head = pyds.NvOSD_Arrow_Head_Direction.END_HEAD
pyds.nvds_add_display_meta_to_frame(frame_meta, display_meta)
output screen: