When I am doing dynamic resolution modification based on DeepStream-Test2, the program can be played normally when I run the program for the first time. When I change the resolution from 1080p to 720p, the playback window is closed first, and then a 720p window is opened and a video is played. After the needle, the screen is stuck (the program does not exit)
The environment is as follows:
Distribution: ubuntu 20.04 focal
Python : 3.8.10
CUDA:11.4.315
cuDNN :8.6.0.166
TensorRT :8.5.2.2
VPI:2.2.7
OpenCV:4.5.4
Model:NVIDIA Orin NX Developer Kit
Module:NVIDIA Jetson Oriin NX(16GB ram)
Jetpack:5.1.1
DeepStream: 6.2
The pipeline is as follows:
filesrc ! h264parse ! nvv4l2decoder ! nvvideoconvert ! video/x-raw(memory:NVMM),width=1920,height=1080 ! nvstreammux batch-size=1 batched-push-timeout=40000 width=1920 height=1080 ! nvinfer ! nvtracker ! nvvideoconvert ! nvdsosd ! nv3dsink
Dynamic modification method:
Modify resolution by nvvideoconvert after decoding with nvv4l2decoder
1.
video/x-raw(memory:NVMM),width=1920,height=1080 -> video/x-raw(memory:NVMM),width=(new_width),height=(new_height)
2. nvstreammux
g_object_set(G_OBJECT(streammux) ,
"width" , width ,
"height" , height ,
NULL);
GST_DEBUG=3 result
root@nvidia-desktop:~/shared_develop/develop/gstreamer/build# ./bin/deepstream_test2_app
With tracker
Using file: ../ai/deep_test2_file/dstest2_config.yml
Opening in BLOCKING MODE
0:00:00.231768642 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:4512:gst_v4l2_object_probe_caps:<nvv4l2-decoder:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:00.231817795 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:00.231840163 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:00.231855876 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:00.231872740 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
gstnvtracker: Loading low-level lib at ../ai/deep_test2_file/tracker_file/libnvds_nvmultiobjecttracker.so
gstnvtracker: Batch processing is ON
gstnvtracker: Past frame output is OFF
[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:04.572707854 42466 0xaaaad9dbc0a0 INFO nvinfer gstnvinfer.cpp:680:gst_nvinfer_logger:<primary-nvinference-engine> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1909> [UID = 1]: deserialized trt engine from :/root/shared_develop/develop/gstreamer/ai/deep_test2_file/yolov8s.onnx_b1_gpu0_fp32.engine
WARNING: [TRT]: The getMaxBatchSize() function should not be used with an engine built from a network created with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag. This function will always return 1.
INFO: [Implicit Engine Info]: layers num: 2
0 INPUT kFLOAT input 3x640x640
1 OUTPUT kFLOAT output 8400x6
0:00:04.751695799 42466 0xaaaad9dbc0a0 INFO nvinfer gstnvinfer.cpp:680:gst_nvinfer_logger:<primary-nvinference-engine> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2012> [UID = 1]: Use deserialized engine model: /root/shared_develop/develop/gstreamer/ai/deep_test2_file/yolov8s.onnx_b1_gpu0_fp32.engine
0:00:04.760804892 42466 0xaaaad9dbc0a0 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-nvinference-engine> [UID 1]: Load new model:/root/shared_develop/develop/gstreamer/ai/deep_test2_file/dstest2_pgie_config.yml sucessfully
0:00:04.763997442 42466 0xaaaad9dbc0a0 WARN basesrc gstbasesrc.c:3600:gst_base_src_start_complete:<file-source> pad not activated yet
Running...
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
0:00:04.883276412 42466 0xaaaad90daf00 WARN v4l2 gstv4l2object.c:4512:gst_v4l2_object_probe_caps:<nvv4l2-decoder:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:04.883338077 42466 0xaaaad90daf00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:04.883373758 42466 0xaaaad90daf00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:04.883394846 42466 0xaaaad90daf00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:04.883414175 42466 0xaaaad90daf00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:04.888032995 42466 0xaaaad90daf00 WARN v4l2videodec gstv4l2videodec.c:1880:gst_v4l2_video_dec_decide_allocation:<nvv4l2-decoder> Duration invalid, not setting latency
0:00:04.888418123 42466 0xaaaad90daf00 WARN v4l2bufferpool gstv4l2bufferpool.c:1114:gst_v4l2_buffer_pool_start:<nvv4l2-decoder:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:04.895079420 42466 0xaaaad90db1e0 WARN v4l2bufferpool gstv4l2bufferpool.c:1565:gst_v4l2_buffer_pool_dqbuf:<nvv4l2-decoder:pool:src> Driver should never set v4l2_buffer.field to ANY
1280 720
[NvMultiObjectTracker] De-initialized
Opening in BLOCKING MODE
0:00:10.800396980 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:4512:gst_v4l2_object_probe_caps:<nvv4l2-decoder:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:10.800437557 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:10.800461590 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:10.800479414 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:10.800496182 42466 0xaaaad9dbc0a0 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
gstnvtracker: Loading low-level lib at ../ai/deep_test2_file/tracker_file/libnvds_nvmultiobjecttracker.so
gstnvtracker: Batch processing is ON
gstnvtracker: Past frame output is OFF
[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:12.829126077 42466 0xaaaad9dbc0a0 INFO nvinfer gstnvinfer.cpp:680:gst_nvinfer_logger:<primary-nvinference-engine> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1909> [UID = 1]: deserialized trt engine from :/root/shared_develop/develop/gstreamer/ai/deep_test2_file/yolov8s.onnx_b1_gpu0_fp32.engine
WARNING: [TRT]: The getMaxBatchSize() function should not be used with an engine built from a network created with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag. This function will always return 1.
INFO: [Implicit Engine Info]: layers num: 2
0 INPUT kFLOAT input 3x640x640
1 OUTPUT kFLOAT output 8400x6
0:00:13.027640172 42466 0xaaaad9dbc0a0 INFO nvinfer gstnvinfer.cpp:680:gst_nvinfer_logger:<primary-nvinference-engine> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2012> [UID = 1]: Use deserialized engine model: /root/shared_develop/develop/gstreamer/ai/deep_test2_file/yolov8s.onnx_b1_gpu0_fp32.engine
0:00:13.032788156 42466 0xaaaad9dbc0a0 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-nvinference-engine> [UID 1]: Load new model:/root/shared_develop/develop/gstreamer/ai/deep_test2_file/dstest2_pgie_config.yml sucessfully
0:00:13.039192711 42466 0xaaaad9dbc0a0 WARN basesrc gstbasesrc.c:3600:gst_base_src_start_complete:<file-source> pad not activated yet
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
0:00:13.159195536 42466 0xffff1c017c00 WARN v4l2 gstv4l2object.c:4512:gst_v4l2_object_probe_caps:<nvv4l2-decoder:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:13.159275250 42466 0xffff1c017c00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:13.159330867 42466 0xffff1c017c00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:13.159366452 42466 0xffff1c017c00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:13.159397716 42466 0xffff1c017c00 WARN v4l2 gstv4l2object.c:2398:gst_v4l2_object_add_interlace_mode:0xaaaad90ca4a0 Failed to determine interlace mode
0:00:13.163862357 42466 0xffff1c017c00 WARN v4l2videodec gstv4l2videodec.c:1880:gst_v4l2_video_dec_decide_allocation:<nvv4l2-decoder> Duration invalid, not setting latency
0:00:13.164124379 42466 0xffff1c017c00 WARN v4l2bufferpool gstv4l2bufferpool.c:1114:gst_v4l2_buffer_pool_start:<nvv4l2-decoder:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:13.171511323 42466 0xffff1c0186a0 WARN v4l2bufferpool gstv4l2bufferpool.c:1565:gst_v4l2_buffer_pool_dqbuf:<nvv4l2-decoder:pool:src> Driver should never set v4l2_buffer.field to ANY
0:00:13.192544803 42466 0xffff1c0186a0 WARN videodecoder gstvideodecoder.c:2761:gst_video_decoder_prepare_finish_frame:<nvv4l2-decoder> decreasing timestamp (0:00:00.068965516 < 0:00:00.482758612)