Hi,
I am getting non-deterministic behavior in Liquidsoap while using the
"prepend" command. I am using an altered version of the prepend part
from the Dolebraï script.
The goal is to broadcast language specific advertisment to several
mountpoints. This should be achieved by reading the metadata of the
track played next and in case of it being an advertisment, the queue of
the other language mounts should be altered.
Example: The main mountpoint is german, the next track to be played is
advertisment, then the script should change the file for the english
mountpoint to the english advertisment instead of also playing the
german one.
The errors I am getting: Starting Liquidsoap by typing "./main.liq" (my
main script file) works approx. 1 out of 10 tries, the tries it doesn't
work, following error is shown at stdout (only parts of the output):
2009/10/26 11:55:14 [threads:3] Created thread "non-blocking queue #1".
2009/10/26 11:55:14 [threads:3] Created thread "generic queue #1".
2009/10/26 11:55:14 [threads:3] Created thread "root" (1 total).
2009/10/26 11:55:14 [root:3] Waking up active nodes...
2009/10/26 11:55:14 [root:3] Broadcast starts up!
2009/10/26 11:55:15 [src_5619:3] Candidate to prepending not ready.
Abort!
2009/10/26 11:55:15 [src_5619:2] #get_frame didn't add exactly one
break!
2009/10/26 11:55:15 [threads:1] Thread "root" aborts with exception
File "source.ml", line 212, characters 10-16: Assertion failed!
Thread 4 killed on uncaught exception Assert_failure("source.ml",
212, 10)
2009/10/26 11:55:15 [main:3] Shutdown started!
2009/10/26 11:55:15 [root:3] Shutting down sources...
init: exception encountered during stop phase:
Rqueue.Not_found
According to the output all files and playlists are loaded succesfully
and the mointpoints are connected. The error occurs after executing
"switchto" (tested via "log()" output) so it seems the "prepend" is
causing the error.
Like I said sometimes Liquidsoap is starting normally and the prepend is
working the first time the switch should be used but every other switch
after the first is failing with this output:
Candidate to prepending not ready. Abort!
I have no idea why this is happening, so I will be gratefull for any
suggestions.
Part of my script:
emergency = single("/home/liquidsoap/emergency.mp3")
jingle_english = single("/home/liquidsoap/jingles/english_jingle.mp3")
pl = playlist(mode = "normal", reload = 59,
"/home/liquidsoap/playlists/pl.m3u")
jingleSIN = "/home/liquidsoap/jingles/testJingle.mp3"
english_q = request.equeue(id="english_q")
english = fallback(track_sensitive=false, [english_q, pl, emergency])
english = add([english, switch([({0m0s}, jingle_english)])])
def switchto(m)
if (m["comment"] == "Advertisment") then
request.queue(interactive=false, queue=[request(jingleSIN)])
else
fallback([])
end
end
english = prepend(english, switchto)
output.icecast.mp3(host = host(), port = 8000, public=true, password
= pwd(), mount = "english", english)
Greetings Marc
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users