[icecast] Freedomaudio player

Karl Heyes karl at pts.tele2.co.uk
Mon Nov 11 04:10:16 PST 2002


On 2002.11.11 11:22 Leo Currie wrote:

> I'm not entirely sure. Certainly, playback is flawless with Winamp.
> Every now and then, Ices seems to just stop, and swallow up all my CPU. 
> I'm not sure if this was caused by my playlist having non-existant file 
> entries, or whether it was caused by me trying to make it play mp3's. In 
> any case, it's been running all night (almost 9 hours now..) without 
> problems, so perhaps it was just the phase of the moon...

Having mp3's in the playlist won't work well:). It's not supposed to stop
ices though, same for non-existent files. I'll have to check that.  The
swallow all my CPU sounds like the send_raw bug.  Does it also show an
increased memory usage as well?

It's a very nasty bug, but only occurs if the connection to icecast
terminates unexpectedly, eg ctrl-C icecast or if the time on the ices
machine changes significantly.  Try the attached patches if that's
the issue.

> What sort of continuous running times can I expect? (For Ices i mean - 
> icecast seems fine)

hould be indefinite (unless you have a limit like once through
playlist).
  karl.

-------------- next part --------------
--- libshout/src/shout.c	Sun Oct  6 14:22:25 2002
+++ libshout.test/src/shout.c	Fri Nov  1 19:58:01 2002
@@ -159,20 +159,24 @@
 	if (!self) 
 		return -1;
 
+	self->error = SHOUTERR_SUCCESS;
 	while(remaining) {
 		ret = sock_write_bytes(self->socket, data, remaining);
-        if(ret < (ssize_t)remaining || errno == EINTR) {
-            remaining -= (ret>0)?ret:0;
-            continue;
-        }
-        else if(ret < 0) {
-            self->error = SHOUTERR_SOCKET;
-            return -1;
+        if (ret == remaining)
+            return len;
+        if(ret < 0)
+        {
+            if (errno == EINTR)
+                ret = 0;
+            else
+            {
+                self->error = SHOUTERR_SOCKET;
+                return -1;
+            }
         }
-        remaining = 0;
+        remaining -= ret;
 	}
 
-	self->error = SHOUTERR_SUCCESS;
 	return len;
 }
 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ices-1.diff
Type: text/x-patch
Size: 3521 bytes
Desc: ices-1.diff
Url : http://lists.xiph.org/pipermail/icecast/attachments/20021111/7856be54/ices-1.bin


More information about the Icecast mailing list