Please provide complete information as applicable to your setup.
• Hardware Platform: Jetson Xavier NX
• DeepStream Version: 6.3
• JetPack Version (valid for Jetson only): 5.1.3
• TensorRT Version: 8.5.2.2-1+cuda11.4
• Issue Type( questions, new requirements, bugs): question / bug
I build a custom deepstream app based on deepstream-lpr-app.
I stream a live video from a camera and need to delay it for some time (about 0.2 seconds or about 5 frames) before passing it to nvosd.
To implement the delay I added min-threshold-buffers=5 property to a queue before the nvosd.
However, when I run the app, the pipeline stalls.
Here is the output:
artem@ubuntu:~/Projects/deepstream_lpr_app/deepstream-lpr-app$ sudo GST_DEBUG=3 ./deepstream-lpr-app 1 4 0 infer ../../../Downloads/output30fps.mp4 cam_output
./deepstream-lpr-app: /lib/aarch64-linux-gnu/libjansson.so.4: no version information available (required by ./deepstream-lpr-app)
use_nvinfer_server:0, use_triton_grpc:0
Warning: 'input-dims' parameter has been deprecated. Use 'infer-dims' instead.
NppStatus: 0
nBufferSize: 14400
Now playing: 1
Opening in BLOCKING MODE
0:00:00.685327580 4844 0xaaaac6e94530 WARN alsa control.c:1379:snd_ctl_open_noupdate: alsalib error: Invalid CTL UMC1820_2
Using winsys: x11
Opening in BLOCKING MODE
0:00:00.782614768 4844 0xaaaac6e94530 WARN v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xaaaac6f6e0e0 Failed to determine interlace mode
0:00:00.782765747 4844 0xaaaac6e94530 WARN v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xaaaac6f6e0e0 Failed to determine interlace mode
0:00:00.782860340 4844 0xaaaac6e94530 WARN v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xaaaac6f6e0e0 Failed to determine interlace mode
0:00:00.782950678 4844 0xaaaac6e94530 WARN v4l2 gstv4l2object.c:2420:gst_v4l2_object_add_interlace_mode:0xaaaac6f6e0e0 Failed to determine interlace mode
0:00:00.783110297 4844 0xaaaac6e94530 WARN v4l2 gstv4l2object.c:4561:gst_v4l2_object_probe_caps:<nvvideo-h264enc:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:00.785040765 4844 0xaaaac6e94530 WARN alsa pcm_hw.c:1715:snd_pcm_hw_open: alsalib error: open '/dev/snd/pcmC0D0c' failed (-77): File descriptor in bad state
0:00:00.855187863 4844 0xaaaac66b2060 FIXME default gstutils.c:3980:gst_pad_create_stream_id_internal:<alsasrc:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
WARNING: [TRT]: Using an engine plan file across different models of devices is not recommended and is likely to affect performance or even cause errors.
0:00:06.412536451 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-infer-engine2> NvDsInferContext[UID 3]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1988> [UID = 3]: deserialized trt engine from :/home/artem/Projects/deepstream_lpr_app/models/LP/LPR/kz_lprnet_baseline18_b16_fp16.engine
INFO: [FullDims Engine Info]: layers num: 3
0 INPUT kFLOAT image_input 3x48x96 min: 1x3x48x96 opt: 4x3x48x96 Max: 16x3x48x96
1 OUTPUT kINT32 tf_op_layer_ArgMax 24 min: 0 opt: 0 Max: 0
2 OUTPUT kFLOAT tf_op_layer_Max 24 min: 0 opt: 0 Max: 0
0:00:06.499445715 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-infer-engine2> NvDsInferContext[UID 3]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2091> [UID = 3]: Use deserialized engine model: /home/artem/Projects/deepstream_lpr_app/models/LP/LPR/kz_lprnet_baseline18_b16_fp16.engine
0:00:06.551272758 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<secondary-infer-engine2> [UID 3]: Load new model:lpr_config_sgie_kz.txt sucessfully
gstnvtracker: Loading low-level lib at /opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so
[NvMultiObjectTracker] Initialized
WARNING: [TRT]: Using an engine plan file across different models of devices is not recommended and is likely to affect performance or even cause errors.
0:00:09.790131171 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-infer-engine1> NvDsInferContext[UID 2]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1988> [UID = 2]: deserialized trt engine from :/home/artem/Projects/deepstream_lpr_app/models/tao_pretrained_models/yolov4-tiny/yolov4_tiny_usa_deployable.etlt_b16_gpu0_int8.engine
INFO: [FullDims Engine Info]: layers num: 5
0 INPUT kFLOAT Input 3x480x640 min: 1x3x480x640 opt: 16x3x480x640 Max: 16x3x480x640
1 OUTPUT kINT32 BatchedNMS 1 min: 0 opt: 0 Max: 0
2 OUTPUT kFLOAT BatchedNMS_1 200x4 min: 0 opt: 0 Max: 0
3 OUTPUT kFLOAT BatchedNMS_2 200 min: 0 opt: 0 Max: 0
4 OUTPUT kFLOAT BatchedNMS_3 200 min: 0 opt: 0 Max: 0
0:00:09.872040307 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-infer-engine1> NvDsInferContext[UID 2]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2091> [UID = 2]: Use deserialized engine model: /home/artem/Projects/deepstream_lpr_app/models/tao_pretrained_models/yolov4-tiny/yolov4_tiny_usa_deployable.etlt_b16_gpu0_int8.engine
0:00:09.950204350 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<secondary-infer-engine1> [UID 2]: Load new model:lpd_yolov4-tiny_us.txt sucessfully
WARNING: [TRT]: Using an engine plan file across different models of devices is not recommended and is likely to affect performance or even cause errors.
0:00:11.319139314 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-infer-engine1> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1988> [UID = 1]: deserialized trt engine from :/home/artem/Projects/deepstream_lpr_app/models/tao_pretrained_models/trafficcamnet/resnet18_trafficcamnet_pruned.etlt_b4_gpu0_int8.engine
INFO: [Implicit Engine Info]: layers num: 3
0 INPUT kFLOAT input_1 3x544x960
1 OUTPUT kFLOAT output_bbox/BiasAdd 16x34x60
2 OUTPUT kFLOAT output_cov/Sigmoid 4x34x60
0:00:11.399304353 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-infer-engine1> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2091> [UID = 1]: Use deserialized engine model: /home/artem/Projects/deepstream_lpr_app/models/tao_pretrained_models/trafficcamnet/resnet18_trafficcamnet_pruned.etlt_b4_gpu0_int8.engine
0:00:11.421710913 4844 0xaaaac6e94530 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-infer-engine1> [UID 1]: Load new model:trafficamnet_config.txt sucessfully
0:00:11.424676344 4844 0xaaaac6e94530 WARN v4l2src gstv4l2src.c:695:gst_v4l2src_query:<source> Can't give latency since framerate isn't fixated !
Running...
NvMMLiteOpen : Block : BlockType = 4
===== NvVideo: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
0:00:11.563041374 4844 0xaaaac66b2120 WARN v4l2bufferpool gstv4l2bufferpool.c:1114:gst_v4l2_buffer_pool_start:<nvvideo-h264enc:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:11.692266714 4844 0xaaaad5603700 WARN v4l2src gstv4l2src.c:914:gst_v4l2src_create:<source> Timestamp does not correlate with any clock, ignoring driver timestamps
Frame number = 0 mean intensity = 28.412987 light_intensity = 13.663758 gain = 7 exposure = 8
H264: Profile = 100, Level = 0
NVMEDIA: Need to set EMC bandwidth : 5744000
NVMEDIA: Need to set EMC bandwidth : 5744000
NvVideo: bBlitMode is set to TRUE
0:00:13.962572989 4844 0xffff1001c6a0 WARN v4l2bufferpool gstv4l2bufferpool.c:1565:gst_v4l2_buffer_pool_dqbuf:<nvvideo-h264enc:pool:src> Driver should never set v4l2_buffer.field to ANY
0:00:13.966456389 4844 0xffff1001c6a0 FIXME basesink gstbasesink.c:3246:gst_base_sink_default_event:<nvvideo-renderer2> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:13.967469496 4844 0xffff1001c6a0 WARN qtmux gstqtmux.c:2981:gst_qt_mux_start_file:<qtmux> Robust muxing requires reserved-moov-update-period to be set
0:00:14.058342796 4844 0xaaaac66b2180 WARN basesink gstbasesink.c:3003:gst_base_sink_is_too_late:<nvvideo-renderer> warning: A lot of buffers are being dropped.
0:00:14.058513647 4844 0xaaaac66b2180 WARN basesink gstbasesink.c:3003:gst_base_sink_is_too_late:<nvvideo-renderer> warning: There may be a timestamping problem, or this computer is too slow.
Here is my pipeline:
When I set the min-threshold-buffers to a lower value (e.g.3) - the app works, but drops some buffers and writes these warnings:
0:00:46.807550191 6063 0xaaab0d594580 WARN basesink gstbasesink.c:3003:gst_base_sink_is_too_late: warning: A lot of buffers are being dropped.
0:00:46.807675057 6063 0xaaab0d594580 WARN basesink gstbasesink.c:3003:gst_base_sink_is_too_late: warning: There may be a timestamping problem, or this computer is too slow.
How to fix the pipeline so it’d delay frames before nvosd without stalling or dropping frames?


