Sending EOS upon closure of EGLsink window

Please provide complete information as applicable to your setup.

• Hardware Platform(GPU) RTX 3080 (also Jetson Orin Devkit and Xavier NX)
• DeepStream Version 6.1
• TensorRT Version 8.5
• Issue Type( questions) questions

So I have a complex pipeline in which I am using a series of CNNs. After the processing, I am using a combination of demuxer and a tee to store each of the raw video streams individually on the file system as well as display the tiled video using ‘nveglglessink’. Everything works perfectly, apart from the fact that the recorded raw video streams do not have an EOS which causes them to be unseekable.
I was able to use SIGINT by attaching a callback to GLib.unix_signal_add() to send EOS to properly close the files when the application is terminated using CTRL + C. But the problem persists when I terminate the application by closing the display window created by ‘nveglglessink’.

Edit: I have tried both signal.SIGINT and signal.SIGTERM.

deepstream-app supports tiler display + single stream recording, the key configurations are enable_with_demux=2, link-to-demux=1.
please refer to deepstream sample:
opt\nvidia\deepstream\deepstream-6.2\sources\apps\sample_apps\deepstream-test5\configs\test5_config_file_src_infer_tiler_demux.txt

for anyone wondering add these lines after loop.run(), where loop is instance of Glib.MainLoop and pipeline is an object of Gst.Pipeline.

Gst.Element.send_event(pipeline, Gst.Event.new_eos())
bus = pipeline.get_bus()
msg = bus.timed_pop_filtered(Gst.CLOCK_TIME_NONE, Gst.MessageType.EOS)

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