Got error when dynamically delete rtsp stream

Hi, I am trying to test the example: Runtime_source_add_delete (https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/master/runtime_source_add_delete) on deepstream v6.1.1.

I got the following error when I dynamically delete a running uridecodebin for a camera.

Calling Stop 3
STATE CHANGE SUCCESS

STATE CHANGE SUCCESS 0x7e800221b0

ERROR from element source: Unhandled error
Error details: gstrtspsrc.c(6161): gst_rtspsrc_send (): /GstPipeline:dstest-pipeline/GstURIDecodeBin:source-bin-03/GstRTSPSrc:source:
Option not supported (551)
Returned, stopping playback
Deleting pipeline

I saw some others post this issue long time ago on DS5.0.1. Now I am facing the same issue on DS6.1.1. Have you figuring out any update/patch for this issue yet ? Thank you very much !

Can you try with DeepStream 6.2?

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
• DeepStream Version
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
• 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)

Hi Fiona,

I am running example runtime_source_add_delete (https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/master/runtime_source_add_delete) using deepstream:6.1.1-triton docker image.
I tried DS6.2 but still the same issue. My issue is similar to another post on forum: Delete source dynamically error
I also tried to follow the recommendations from this post but none of those work for me, so I repost to ask for help.
I read very carefully the source: deepstream_test_rt_src_add_del.c and I saw that the delete_source callback only delete the rtsp streams which have EOS signal.

static gboolean
delete_sources (gpointer data)
{
gint source_id;
g_mutex_lock (&eos_lock);
for (source_id = 0; source_id < MAX_NUM_SOURCES; source_id++) {
if (g**_eos_list[source_id] == TRUE** && g_source_enabled[source_id] == TRUE) {
g_source_enabled[source_id] = FALSE;
stop_release_source (source_id);
}
}
g_mutex_unlock (&eos_lock);

So basically this mean we can not manage to delete a running (healthy) rtsp stream when the stream connection is good ?

If you want to remove the RTSP stream from the pipeline that means you don’t want the stream data anymore, right? So we send EOS event to the source element and flush the remainning data( https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/blob/master/runtime_source_add_delete/deepstream_test_rt_src_add_del.c#L197), and then the pad of the source element is free, we can remove the pad link with the pipeline. This is a very normal and basic GStreamer element operation.

We have tested with our RTSP sources, we can not reproduce your failure. Can you tell us how to reproduce your issue?

We have tested with our RTSP sources, we can not reproduce your failure. Can you tell us how to reproduce your issue?
=> Hi Fiona, to reproduce the issue: please recompile the example https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/master/runtime_source_add_delete and try with RTSP input source from Hikvision camera.
I created a streaming server to streamout rtsp from video file and it ran ok without this issue. So the issue occurs only with camera (hikvision).

We don’t have such cameras. It seems RTSP server(camera) compatibility issue. Is there detailed debug log for the failure? Please use “export GST_DEBUG=rtspsrc:7” to enable the debug log.

=> Yes, I create a function which call eos signal on the camera source pad. And I saw the “bus_callback” catched the eos signal corresponding to the camea source. After that the “stop_release_source” function was invoked and flush → release request pad ok. But then after that I got the same issue above:
Calling Stop 3
STATE CHANGE SUCCESS

STATE CHANGE SUCCESS 0x7e800221b0

ERROR from element source: Unhandled error
Error details: gstrtspsrc.c(6161): gst_rtspsrc_send (): /GstPipeline:dstest-pipeline/GstURIDecodeBin:source-bin-03/GstRTSPSrc:source:
Option not supported (551)
Returned, stopping playback
Deleting pipeline

=> This must be caused by the camera source streaming protocol incompatibility.

Yes. You can use “export GST_DEBUG=rtspsrc:7” to get more details.

Hi Fiona, I tested with “export GST_DEBUG=rtspsrc:7”. I attached log in the attachment. Could you pls take a look. Thank you.
log (19.9 KB)

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

The log shows the RTSP server(the camera) send a “Option not supported” response with the client(DeepStream app)'s request for closing. Please check your RTSP server(the camera). The RTSP client(GStreamer rtspsrc) is strictly following RFC2326. RFC 2326: Real Time Streaming Protocol (RTSP) (rfc-editor.org)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.