Re: Dual appsink in a pipeline, C API -> pipeline is stuck

Michael Gruner via gstreamer-devel <[email protected]>
Newsgroups gmane.comp.video.gstreamer.devel
Message-ID <[email protected]>
It's hard to diagnose without the actual pipeline, but it seems like a prerolling problem. In a GStreamer pipeline (in default conditions at least) every sink element needs to receive a buffer for the pipeline to transition to the PLAYING state. Otherwise it will get stuck in the transition in a way similar as you describe. You can either:

1. Use queues after the tee, like:

rtp stream ... ! tee name=t       t. ! queue ! appsink     t. ! queue ! appsink

As a rule of thumb, you always want to place queues at the src pads of an element with multiple outputs, like the tee.

2. Set async=false in the appsinks, which will instruct the pipeline that it doesn't need to wait for these appsinks to receive buffers to actually start PLAYING.

Hope it helps


Michael
www.ridgerun.com

> On 1 Sep 2023, at 05:49, Centraladmin via gstreamer-devel <[email protected]> wrote:
> 
> Hello here, 
> 
> In a pipeline, after decoding the input pictures from a RTP stream, I put a "tee" element. 
> 
> The first of the "branch" of this tee re-encodes the picture and then sends the encoded packet to the application thru an appskink element.
> 
> The second "branch" of the tee is connected to another encoder and then connected also to the application with another appsink element.
> 
> My problem is that as soon I declare the second appsink element (without even connecting it), the pipeline is stuck. Without creaing the second appsink, the first branch is working.
> 
> Any ideas ? Is is possible to insert multiple appsink in 1 single pipeline ? Any properties that I can try?
> 
> Thanks for ideas and help,
> Sylvain.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.