Deepstream app crashes if any of the rtsp source stops sending stream

I am using a deep stream app which was built using test cases provided. It makes use of 4 rtsp sources and if any of the rtsp source crashes entire deep stream app won’t function. My stream stops after working for some time and it is a frequent thing all the time.

I was referring for some suggestions provided on the forums and found one which is in C. I understood it to some extent and tried to replicate the same in Python but unable to find syntax for few in python.

The one I am using as a reference is here. I found this from the forum

I wasn’t able to find few things which are as follows:

  1. In bus_call function, in the case 4, there are two functions being used namely gst_nvmessage_is_stream_eos and gst_nvmessage_parse_stream_eos. They are used to check and read if any source in streammux sends eos message. I am unable to find the syntax for doing in python.

  2. The Mutex lock part which we are using while changing state of any source.

Can someone let me know where I can find them?

  1. There is no python binding for gst_nvmessage_is_stream_eos or gst_nvmessage_parse_stream_eos
  2. You may refer to Glib python binding for the glib interfaces. https://lazka.github.io/pgi-docs/#GLib-2.0/classes/Mutex.html#GLib.Mutex
1 Like

Can you suggest any other approach for handling failure of rtsp sources using deepstream in Python?

It is confusing. When there is one rtsp stream broken, the pipeline will still work. Why do you say “if any of the rtsp source crashes entire deep stream app won’t function”? What kind of crash have you met? Are you sure the problem is caused by “EOS” message?

For error handling with python, there is rare resource for reference.