how to change sources while pipeline is on PLAYING state?

Tonu Jaansoo chain at bsd.ee
Sat Sep 14 09:13:46 PDT 2013


Hi!

Seems something similar that I have encountered. 
Try to unlink all removed elements, remove them from pipeline. Use gst_element_sync_state_with_parent(new_element) right after linking new elements. 

Tonu.

On Sep 14, 2013, at 7:01 PM, Tim-Philipp Müller <t.i.m at zen.co.uk> wrote:

> On Wed, 2013-09-11 at 14:01 -0300, Lautaro Woites wrote:
> 
> Hi,
> 
>> I'm using gstreamer 0.10.36 and I have a pipeline like this:
>> 
>> filesrc ! decodebin2 ! valve ! queue2, ! videorate ! video_scale !
>> xvimagesink
>> 
>> I'm trying to change the filesrc/decoder when the pipeline is on
>> PLAYING state. I've tried the following:
>> 
>> 1) create the new filesrc and decoder
>> 
>> 2) close the valve
>> 
>> 3) set filesrc and decoder on NULL state
>> 
>> 4) remove the filesrc and decoder from the pipeline
>> 
>> 5) add the new filesrc and decoder to the pipeline
>> 
>> 6) link them and set to playing
>> 
>> This doesn't work for me (the video freezes when I remove the
>> filesrc).
>> 
>> I've also tried to send a FLUSH_STOP event before step 6). This work
>> better but:
>> 
>> * The sources have started to change but they hasn't started from the
>> beginning. For example, if I change the filesrc in second 10, the new
>> filesrc starts playing from second 10.
>> 
>> * and almost in every source change  the video freezes notoriously
>> 
>> I still don't know if this the correct/standard way to do this. Can
>> someone help me? 
> 
> You could have a look at gstreamer editing services and/or gnonlin.
> 
> There's also a streamsynchronizer element in the playback plugin in
> -base, but if I remember correctly it's not exposed in 0.10, only in
> 1.x. But it's what playbin uses internally for gapless playback.
> 
> Cheers
> -Tim
> 
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list