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