Savant icon indicating copy to clipboard operation
Savant copied to clipboard

AO RTSP RuntimeError and restart input pipeline after EOS

Open denisvmedyantsev opened this issue 8 months ago • 0 comments

Sending data from the same source (source_id) after EOS causes an error and restarts the input pipeline of the always_on_rtsp.

Add to process_frame in samples/auxiliary_streams/multiple_resolutions.py to send EOS, for example, every 1000th frame

                if frame_meta.frame_num % 1000 == 0:
                    aux_stream.eos()

Run the sample, after EOS in logs

...
always-on-sink-1     |  2025-04-02T19:01:39.671Z INFO  insight::savant::savant_rs_video_demux                       > Created new src pad for source video-360p: src_video-360p_980.
always-on-sink-1     | Traceback (most recent call last):
always-on-sink-1     |   File "/opt/savant/adapters/ds/sinks/always_on_rtsp/input_pipeline.py", line 76, in link_added_pad
always-on-sink-1     |     assert src_pad.link(sink_pad) == Gst.PadLinkReturn.OK
always-on-sink-1     |   File "/usr/lib/python3/dist-packages/gi/overrides/Gst.py", line 189, in link
always-on-sink-1     |     raise LinkError(ret)
always-on-sink-1     | gi.overrides.Gst.LinkError: <enum GST_PAD_LINK_WAS_LINKED of type Gst.PadLinkReturn>
always-on-sink-1     |  2025-04-02T19:01:39.830Z ERROR insight::savant::savant_rs_video_demux                       > Failed to push frame with PTS 40960000000 from source video-360p: <enum GST_FLOW_NOT_LINKED of type Gst.FlowReturn>
...

denisvmedyantsev avatar Apr 02 '25 20:04 denisvmedyantsev