[Icecast] 100 percent CPU utilization while sourcing a Speex stream
William K. Volkman
wkvsf at users.sourceforge.net
Sun Nov 13 08:28:14 UTC 2005
I mentioned in a previous post about being fooled that something was
wrong because using ezstream (or any other libshout2 client) to
stream a Speex file completed really quickly. Well I think the
problem is that for some reason icecast 2.3.0 is not handling things
well, at least not compared to the other stream formats. I see now
that it is using 100% of the CPU when being sourced a Speex stream.
If I source Vorbis, Theora, or MP3 streams the icecast server remains
with a fairly innocuous utilization. Maybe related, most likely not,
looking in libshout I'm suspicious of this code:
void shout_sync(shout_t *self)
{
int64_t sleep;
if (!self)
return;
if (self->senttime == 0)
return;
sleep = self->senttime / 1000 - (timing_get_time() -
self->starttime);
if (sleep > 0)
timing_sleep((uint64_t)sleep);
}
Why is senttime being scaled by 1000, is it in different units than
starttime?
Suggestions welcome.
William.
More information about the Icecast
mailing list