Please provide complete information as applicable to your setup.
**• Hardware Platform (Jetson / GPU) Jetson
**• DeepStream Version 6.0
**• JetPack Version (valid for Jetson only) 4.6.3
**• TensorRT Version 8.2.1.32
• 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) GLib, Gst, GstRtspServer, GObject
Hello, I’m trying to create a pipeline with two bin containers that I want to change dynamically on runtime, so when make a input, the pipeline change the bin container and process the stream data in a different way. Although I don’t get any error message, the pipeline doesn’t work. I tried adding probes to see what was going on, but I don’t get any output, as if the source file wasn’t been reading.
The Pipeline structure should be something like this.
gst-launch-1.0 -e
filesrc location=sample_720p.h264 ! h264parse ! nvv4l2decoder ! nvstreammux ! tee name=t ! XBinObject : t. ! queue ! nvinfer ! nvvideoconvert! nvdsosd ! ‘video/x-raw(memory:NVMM), format=I420’ ! nvv4l2h264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000 \
BinDeactivate : t. ! queue ! ‘video/x-raw(memory:NVMM), format=I420’ ! nvv4l2h264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000
I based my work on the samples shown by MaZderMind and deepstream_python_apps. The bin containers I create are added and removed succesfully, I get GST_STATE_PLAYING when the bin is linked to the main pipeline and GST_STATE_NULL when It is disconnected from the pipeline, but the data doesn’t flow. I checked the status of the filesrc element and only appears as GST_STATE_NULL or GST_STATE_READY and If i tried to set its state to GST_STATE_PLAYING with the set_state() function I get the error message:
GST_PADS gstpad.c:1149:gst_pad_set_active:file-source:src Failed to activate pad
The rest of the element of the main pipeline seems to be in state GST_STATE_NULL too.
I create each container with a GhostPad in the SinkPad of its queue element. The objective is to make an object detection inference in one bin and in the other just left raw stream flow. Both are sent to a udpsink element with the same properties.
I add the bin container using the sync_state_with_parent() function and linking the tee element with it and when I remove it, I make sure to get the pad and it peer and set the bin status to Gst.State.NULL before remove it from the main pipeline and release the peer tee pad.
I’m not sure what I’m making wrong here. The examples I followed, were mainly to change source files on runtime, so maybe that solution is not suitable for what I’m trying to achive.
It may be to much code lines to post here, so I prefer to upload the .py file here.
Dinamic_Deactivate_SiamTracker_ObjectDetector_Pipeline.py (18.6 KB)
You can find the Runner class here.