Hi Solvik,

I'm really glad to see your mail. Finally somebody notices the painful
work on clocks ;)

Hopefully, you've only discovered a bug in your script. Crossing
operators need to fold a stream onto itself (to combine the end of a
track with the beginning of another) which violates time flows. This
used to lead to problems, for example crossing on input.http would
cause disconnections (because it required too fast streaming) and in
some cases this could lead to even worse problems (repeated frames).
Now, the cross operators assign a clock of their own to their source,
to take ownership of their time flow and avoid any problem. The
message that you see means that ownership was denied, there is
something in your script that prevents it (or a bug in liquidsoap,
we'll see).

You have to look for problems of the following sort: do you run a
realtime output (icecast, soundcard) on s, a subsource of s, or a
source that is linked to s or one of its subsources? do you combine
the result of your smart_cross (or a source built from result) with s
(or a subsource, or a linked source)?

I realize that this paragraph sounds scary... but the idea should be
pretty intuitive. By default, a source and its children sources must
belong to the same clock. If you write s = add([s1,s2]) then s, s1 and
s2 will have to belong to the same clock. Cross operators are an
exception. For them you have to check that the full sub-graph of
sources is isolated from the rest so it can have its own clock.

If you can't figure out, send us your complete script.

HTH

David

PS: I'll have to write this down as a proper doc page, of course.

------------------------------------------------------------------------------
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to