Nested pipelines with different running time
Andrzej Bartoszek
andrzej.bartoszek at flytronic.pl
Mon Oct 24 09:26:19 UTC 2016
Hello.
Let's suppose that we work with such pipeline:
+-pipeline-------------------------------------+
| +-pipeline A-----------------+ |
| --| timeshift buffer ---> sink | |
| / +----------------------------+ |
| live src -- |
| \ +-pipeline B-----------------+ |
| --| timeshift buffer ---> sink | |
| +----------------------------+ |
+----------------------------------------------+
Currently, both inner pipelines can be in different states (let's
consider only PAUSED and PLAYING). Which is good.
However, when one pipeline is paused (after being in PLAYING) and then
it goes back to PLAYING, it does not change base_time. In this way, when
inner pipeline is calculating its running time (clock_time - base_time),
it is equal to running time of outer pipeline. Despite being in PAUSED
state for some time. Is that a valid behavior?
This is caused by patch to bug #665390 - after this change, only
toplevel pipelines perform clock/time management. If described behavior
is not valid, maybe there is need for some better fix (flag in
GstElement, similar to locked state?) allowing for nesting pipelines
with different running time?
Best regards,
Andrzej Bartoszek
More information about the gstreamer-devel
mailing list