Hi,
The problem is that is only works with plalists... I'd like to have
something similar with http streams but the only I found is either to
use an add which will mix the sources or using a local icecast relay
with a liquidsoap buffer of 1s in order to avoid having the remaining
buffer playing before the actual stream. It would be great to have a
sort of buffer timeout or an option to say "buffer have to throw the
outdated data in case it's full".
Another useful thing is that when you send the stop command to an http
input is that it stop directly without waiting for their buffer to be
empty (and they should ne able to drop the content of the buffer...)
Simon
Le 07 Sep 2008 à 13:07, David Baelde a écrit :
Fred wrote:
1/ 15h00 a 16h00 je joue une playlist de tracks
2/ 16h00 a 17h00 je switche avec transition et joue une playlist de
mix (=track de + d'une heure)
3/ 17h00 a 18h00 je dois revenir a la playlist de tracks
comme le fallback est track_sensitive=false liquidsoap fade-out
puis arrête le mix,
passe la transition et switche sur la source des tracks.
Jusque là tout est normal.
4/ Si a 18h00 je dois a nouveau passer les mixs, Liquidsoap
switche et me rejoue le même mix qu'il avait commencé entre 16h a
17h (???)
il ne renvoie pas les metadata et ne le loggue même pas !!
Hi Fred,
This is a normal behaviour: you your fallback() switches, it leaves
the mix
source alone, out of time; when it comes back to it, it is as if
nothing
happened in between. It is generally a good thing: if the child
source keeps
streaming in the void, then when you come back to it it might have
consumed ten
tracks and be in the middle on the eleventh.
But as you noticed, it is not wanted sometimes. Romain already fixed
that,
by writing a special operator: fallback.skip(). It is already in the
utils.liq
library so you can use it in your scripts without adding anything.
However, it might not be good enough for you so I'll show you the
code,
explain it and tell you how to adapt it.
# Special track insensitive fallback that
# always skip current song before switching.
# @category Source / Track Processing
# @param ~input The input source
# @param f The fallback source
def fallback.skip(~input,f)
def transition(a,b) =
source.skip(a)
# This eats the last remaining frame from a
sequence([a,b])
end
fallback(track_sensitive=false,transitions=[transition,transition],
[input,f])
end
The default transition is a fallback is to play one track after the
other, i.e.
sequence([a,b]). Here, we have a fallback with almost that default
transition,
except that it first tells a to end its track. By doing so, it
ensures that
the source will be at a beginning of track when it is streamed
again. (The
tricky thing here is to write sequence([a,b]) instead of just b: it
matters,
since after telling source "a" to end its track, the ending of the
track should
be consumed. With "b" alone instead of the sequence, you would find
"a" at the
end of a track when you come back to it instead of the beginning of
the next
one.)
In your case, you want to skip the end of the mix track. But you
want more than
the sequencing transition used in fallback.skip(). You can keep your
current
code, and add a source.skip(a) in your transition.
def goldorak(mixin_jingle,a,b)
source.skip(a)
sequence([ fade.final(duration=8.,a),
mixin_jingle,
fade.initial(duration=7.,b) ])
end
Have fun,
David
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
Build the coolest Linux based applications with Moblin SDK & win
great prizes
Grand prize is a trip for two to an Open Source event anywhere in
the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users