How to tell if the dynamically modified pipeline is running stable?

Yin LU lu.yin.2004 at gmail.com
Sat Jul 23 14:08:56 UTC 2022


Hi guys,

I'm currently working on a dynamic pipeline. The pipeline is very simple:

gst-launch-1.0 \
uridecodebin uri=rtsp://10.0.0.207:50900/c11 ! queue name=q0 ! videorate
max-rate=25 drop-only=1 ! nvvideoconvert ! fpsdisplaysink sync=0

In my c/c++ code, the above pipeline was constructed by
'gst_parse_bin_from_description'. Then I created a new uridecodebin to
replace the old uridecodebin dynamically. A on_EOS probe was hooked at the
src pad of queue(q0). An EOS event was sent to the old uridecodebin and it
will be intercepted by the on_EOS probe. And then an on_IDLE probe was
hooked at the src pad of queue(q0). In the on_IDLE probe the old
uridecodebin was unlinked and replaced with a new uridecodebin. Everything
is classic.

But my question is: How to know exactly if the modified pipeline has been
running stable, when and where?

I find this question difficult to answer for me because there is no easy
way (such as an event) to tell if a modified pipeline is running stable or
not. This problem brings a series of troubles, such as two rapid dynamic
pipeline modifications in a row will cause a bad deadlock.

Is there any trick I should do to be able to solve these situations?

Any help would be appreciated!

Neo.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220723/77ce1de3/attachment.htm>


More information about the gstreamer-devel mailing list