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.