Hi Samuel, Thank you for the explanation. I realize that this is not the behavior that my application needs. I want to have control over everything. I Need to control the order. 1. next 2. on_track 3. on_end
I guess all I want to do is turn off prefetch. Here is why; you see I have a queue and queues operate on FIFO principle. I when I get next, I do not remove the first item from the queue unless on_end is called. If a prefetch happens before end then it will just read the same item that is on the queue when next was called. This is why I need to control the events... is there a way to do this? From: Samuel Mimram Sent: Thursday, September 08, 2011 4:13 AM To: Alfie Cc: David Baelde ; [email protected] Subject: Re: [Savonet-users] LiquidSoap for Win32 Hi, This is because Liquidsoap gets the next song in advance (the prefetching David mentionned), while the current song is playing: 1111: song 1 is downloaded 2222: song 1 is played 1111: song 2 is downloaded (while song 1 is playing) 3333: song 1 stops 2222: song 2 is played 1111: song 3 is dowloaded (while song 1 is playing) 3333: song 2 stops 2222: song 3 is played etc. ++ Sam. On Thu, Sep 8, 2011 at 5:51 AM, Alfie <[email protected]> wrote: Hi again, I know you told me to post in the thread but I don’t even know where it is? I tried the on_track method and I am even more lost... It does seem to be working as you described... Here is my script and look at the log. It seems to not be firing in the order you and your documentation describes. the order is suppose to be 1,2,3. But it is apparently not. Can you tell me why? def ab_next() = # Get the first line of my external process log("11111111111111111111111111111111111111-------------next") result = list.hd(get_process_lines("C:\PlayGen.exe -cmd=next")) # Create and return a request using this result request.create(result) end def ab_playing(m) = # Get the first line of my external process log("2222222222222222222222222222222222222--------------playing") system("C:\PlayGen.exe -cmd=playing") end def ab_played(t, m) = # Get the first line of my external process log("33333333333333333333333333333333333--------------played") system("C:\PlayGen.exe -cmd=played -cat=-1") end # Create the source s = request.dynamic(ab_next) s = mksafe(s) s = on_track(ab_playing,s) s = on_end(ab_played, s,delay=3.0) output.icecast(%mp3,host="localhost",fallible=true,port=8041,password="hackme",mount="live",s) ******************LOG BELOW********************** 2011/09/07 23:35:32 [lang:3] 11111111111111111111111111111111111111-------------next 2011/09/07 23:35:32 [decoder:3] Method "MP3/LIBMAD" accepted "c:\Out\int.mp3". 2011/09/07 23:35:35 [request.dynamic_4308:3] Finished with "c:\Out\7af6061e-e1c1-495d-983d-2c3a9b36e9bd.mp3". 2011/09/07 23:35:35 [request.dynamic_4308:3] Prepared "c:\Out\int.mp3" (RID 70). 2011/09/07 23:35:35 [lang:3] 2222222222222222222222222222222222222--------------playing 2011/09/07 23:35:35 [lang:3] 11111111111111111111111111111111111111-------------next 2011/09/07 23:35:35 [decoder:3] Method "MP3/LIBMAD" accepted "c:\Out\int.mp3". 2011/09/07 23:35:38 [clock.wallclock_main:2] We must catchup 2.50 seconds! 2011/09/07 23:35:40 [lang:3] 33333333333333333333333333333333333--------------played 2011/09/07 23:35:43 [request.dynamic_4308:3] Finished with "c:\Out\int.mp3". 2011/09/07 23:35:43 [request.dynamic_4308:3] Prepared "c:\Out\int.mp3" (RID 47). 2011/09/07 23:35:43 [lang:3] 2222222222222222222222222222222222222--------------playing 2011/09/07 23:35:43 [lang:3] 11111111111111111111111111111111111111-------------next 2011/09/07 23:35:44 [decoder:3] Method "MP3/LIBMAD" accepted "c:\Out\d54f0765-783c-4a2f-b96e-44cfe2e6af80.mp3". 2011/09/07 23:35:46 [clock.wallclock_main:2] We must catchup 2.64 seconds! 2011/09/07 23:35:48 [lang:3] 33333333333333333333333333333333333--------------played 2011/09/07 23:35:52 [request.dynamic_4308:3] Finished with "c:\Out\int.mp3". 2011/09/07 23:35:52 [request.dynamic_4308:3] Prepared "c:\Out\d54f0765-783c-4a2f-b96e-44cfe2e6af80.mp3" (RID 372). 2011/09/07 23:35:52 [lang:3] 2222222222222222222222222222222222222--------------playing 2011/09/07 23:35:54 [clock.wallclock_main:2] We must catchup 2.55 seconds! -----Original Message----- From: David Baelde Sent: Tuesday, September 06, 2011 4:45 AM To: Alfie Cc: [email protected] Subject: Re: [Savonet-users] LiquidSoap for Win32 Hi, On Tue, Sep 6, 2011 at 9:31 AM, Alfie <[email protected]> wrote: > For problem 2, I think I should explain more. You see, I have a program > that > generates a playlist. when it is generated it also sets an image that is > for > the current playing item so that the website can use the image. > this requires that when liquidsoap calls the playlist program it should be > in sync. OK so you don't need "perfect sync", just "enough sync". > The problem is that liquid soap streams the data and grabs another "next" > too soon and it makes the images out of sync by a few seconds. > How can I tell liquid soap to wait for the entire stream to be sent before > it grabs another playlist item? You need to distinguish prefetching (when liquidsoap prepares a file) and playing (when it actually plays it, which is when you want to inform the website that the image should change). To do stuff when a file is played, you typically need to use on_track(). If you need more help, please start a new thread with a clear topic and explaination: many people here have similar devices and could share their experience and code snippets. Cheers, -- David ------------------------------------------------------------------------------ Doing More with Less: The Next Generation Virtual Desktop What are the key obstacles that have prevented many mid-market businesses from deploying virtual desktops? How do next-generation virtual desktops provide companies an easier-to-deploy, easier-to-manage and more affordable virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/ _______________________________________________ Savonet-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA Learn about the latest advances in developing for the BlackBerry® mobile platform with sessions, labs & more. See new tools and technologies. Register for BlackBerry® DevCon today! http://p.sf.net/sfu/rim-devcon-copy1
_______________________________________________ Savonet-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/savonet-users
