restarting a branch of the pipeline...?
etrousset at awox.com
Wed Apr 23 01:40:04 PDT 2014
> -----Original Message-----
> From: gstreamer-devel [mailto:gstreamer-devel-
> bounces at lists.freedesktop.org] On Behalf Of Sebastian Dröge
> Sent: mercredi 23 avril 2014 09:42
> To: Discussion of the development of and with GStreamer
> Subject: Re: restarting a branch of the pipeline...?
> On Di, 2014-04-22 at 15:09 +0200, Eric Trousset wrote:
> > Hi
> > In the case I stop a part of my pipeline by sending an EOS event and the
> unlinking this branch, is there a proper way to restart it?
> > I tried relinking it, but then the pads are is EOS state, and even an stream
> start event won't wake it up.
> > So what would be the best way to disable a branch of the pipeline and then
> to re-enable it?
> After receiving an EOS, the pads can only accept data again after flushing or
> deactivating (i.e. setting the element to READY).
Hi, that's what I figured out (about the flush stop event) after realizing that this part of the pipeline was playing again after seeking.
So I send the flush stop event after relinking the pads and then I can see the segment event goes down to the audio sink, but I still need to seek again for the audio to come back.
> What exactly is the bigger picture of the problem you're trying to solve?
We have a media in which the audio part can be removed by the server. So when this occurs I unlink the audio part of the pipeline and then reconnect it when the audio is back again. We are aware of audio presence or not via the http header.
At first, I wasn't unlinking anything, hoping that lets the GAP event handle the absence au audio in some part of the file. This was almost ok. (the audio is removed or re-enable after a seek event). But after a few time, some element of the pipeline wouldn't come back to playing state.
> There are multiple ways of stopping a pipeline part, depending on what kind
> of behaviour you want.
> Sebastian Dröge, Centricular Ltd - http://www.centricular.com Expertise,
> Straight from the Source
More information about the gstreamer-devel