<div dir="rtl"><div dir="ltr">I have a system that consumes video from an RTSP source, using the rtspsrc element. The source  may occasionally fail, so whenever I detect a failure, I'm trying to re-create the pipeline in a loop until the pipeline becomes live again. The problem is that apparently rtspsrc does not clean up completely. When running lsof on the program, I see more and more stream resources being consumed, until the point in which the operating system stops the whole program.</div><div dir="ltr"><br></div><div dir="ltr">Here's a small snippet that recreates the problem:</div><div dir="ltr"><br></div><div dir="ltr">#!/usr/bin/python3<br>import gi<br>gi.require_version('Gst', '1.0')<br>from gi.repository import Gst, GLib<br>import time<br><br>gpipe = None<br><br>def proc_message(bus, message):<br>    global gpipe<br>    if (message.type == Gst.MessageType.ERROR):<br>        gpipe.set_state(Gst.State.NULL)<br>        time.sleep(1)<br>        gpipe = create_pipe()<br><br>def create_pipe():<br>    pipe = Gst.parse_launch('rtspsrc location=rtsp://localhost:1000 ! fakesink')<br>    pipe.get_bus().add_signal_watch()<br>    pipe.get_bus().connect("message", proc_message)<br>    pipe.set_state(Gst.State.PLAYING)<br>    return pipe<br><br>Gst.init(None)<br>gpipe = create_pipe();<br>GLib.MainLoop().run()</div><div dir="ltr"><br></div><div dir="ltr">The environment is Gstremer from git head (also tried released 1.16, same problem) on Ubuntu 18.04.</div><div dir="ltr"><br></div><div dir="ltr">Avishay<br></div><div dir="ltr"><br></div></div>