[gst-devel] clocking
in7y118 at public.uni-hamburg.de
in7y118 at public.uni-hamburg.de
Thu Feb 12 07:34:06 CET 2004
Quoting Thomas Vander Stichele <thomas at apestaart.org>:
> After going over the old and new clocking system, and trying to figure
> out what you think was broken, I'm pretty much lost. Basically, if
> you're going to claim it was "extremely broken" I think you should back
> that up with an explanation :) FWIW you seem to call things either
> perfect or broken.
>
1) The old system reset the time of the clock when a toplevel pipeline went
from PAUSED to PLAYING. If you have multiple toplevel pipelines using the same
clock, you have a problem. (It should be possible to reproduce by using
esdsink and trying to play a file while loading your library - I haven't tried
that).
2) The old system reset the time of the clock when a toplevel pipeline went
from PAUSED to PLAYING. This means that when the clocking elements go from
PAUSED to PLAYING (which can be quite a bit later when you use gst-launch with
SOMETIMES pads) they might discard the first part of your data as being late.
3) The old system could not handle multiple discontinuity events. You had
gst_clock_handle_discont and that set the time according to the discont event
and after that allowed no more discontinuity to happen, so it wasn't bad if to
sinks called handle_discont. One perversity with this is that to get around
that limitation, some elements deactivated and then activated the clock before
making it handle disconts, so the discont worked.
These are three things I remeber from the top of my head.
> The clocking system already passed the basic test Christian layed out in
> 0.6, and it is really hard to evaluate why your start of a rewrite is
> better at all. After discussing it a little with Wim yesterday I really
> don't see what problem was unsolvable in the 0.6 clocking system, so I
> have the feeling doing such fundamental changes so late in the cycle was
> wrong and we should revert and figure out how to properly do clocking.
>
If you come up with a better solution, go ahead. :)
The problem with the 0.6 clocking systemis its failure to seperate system
time, stream time and synchronization and trying to do all at once.
> As Andy said, there were people who knew and used the old system, and it
> seemed to work fine for them. Also, conceptually, the old system makes
> a lot of sense. I'm not saying the new one does not, I'm saying I have
> no way of telling if it makes more sense and if it was right to make the
> changes.
>
The old way doesn't make a lot of sense. ;)
Just the fact that there's only one time inside a pipeline and the fact that
time may be adjusted is bad enough for me.
Benjamin
More information about the gstreamer-devel
mailing list