Skip to content

Conversation

pslldq
Copy link
Contributor

@pslldq pslldq commented Aug 13, 2025

Only create a src ghost pad for the pipeline bin to avoid linking an unused sink ghost pad, as this may break delayed linking attempts.

The second argument from gst_parse_bin_from_description enables an automatic creation and linking of ghost pads. In the usual case only a src ghost pad is created, as a potential sink is not necessary and will not be linked to anything.

But in case of a (video) demux element linked with a consumer, the initial linking fails, due the demux element not knowing the streams and therefore not providing any src pads. As the consumer pad is not linked, a sink ghost pad is created and linked. When the demux element knows what streams it has, it creates its src pads and a delayed linking occurs. But as the consumer is already linked, the intended link with the demux element fails.

To avoid this error, we avoid the automatic ghost pad creation and instead manually create the src ghost pad.

Only create a src ghost pad for the pipeline bin to avoid linking an
unused sink ghost pad, as this may break delayed linking attempts.

The second argument from gst_parse_bin_from_description enables an
automatic creation and linking of ghost pads. In the usual case only a
src ghost pad is created, as a potential sink is not necessary and
will not be linked to anything.

But in case of a (video) demux element linked with a consumer, the
initial linking fails, due the demux element not knowing the streams
and therefore not providing any src pads. As the consumer pad is not
linked, a sink ghost pad is created and linked. When the demux element
knows what streams it has, it creates its src pads and a delayed
linking occurs. But as the consumer is already linked, the intended
link with the demux element fails.

To avoid this error, we avoid the automatic ghost pad creation and
instead manually create the src ghost pad.

Signed-off-by: Sven Püschel <s.pueschel@pengutronix.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants