[icecast-dev] Icecast2?
Ricardo Galli
gallir at uib.es
Tue Feb 19 14:40:41 PST 2002
On 19/02/02 23:09, Likai Liu shaped the electrons to say:
> Ricardo Galli wrote:
> >By assigning a timestamp to each packet read from the source socket. I
> > think the only sane way to do it.
>
> great idea. with this implementation, actually you can set a smaller
> buffer size, but wait a longer time for recovery. once congestion is
> clear, previous "missed" packets are thrown away, and new packets
> continue to flow. that introduces skips but overall latency control is
> better. i like your idea.
I am trying it now, you can do it also at http://mcrg.uib.es:8000/live.ogg
<p>It's configured with a prebuffering of 5 seconds, and a maxlag of 10 seconds.
If a refbuf for a given client exceeds 10 seconds, and it's not a partial
packets, it is silently discarded and removed. The "core" is shown below:
if(abuf->timestamp > 0 && /* only if has timestamp */
client->pos == 0 && /* give a chance to partial packets */
abuf->timestamp < (now - maxlag) /* packet too delayed, discard */ ) {
/* almost a no-op */
printf("DEBUG: discarding %d bytes from queue!!! LAG=%d MAXLAG=%d\n",
bytes, now - abuf->timestamp, maxlag);
} else {
printf("DEBUG: sending %d bytes from queue...\n", bytes);
sbytes = sock_write_bytes(client->con->sock, abuf->data[client->pos],
bytes);
<p><p>
--
ricardo
"I just stopped using Windows and now you tell me to use Mirrors?"
- said Aunt Tillie, just before downloading 2.5.3 kernel.
--- >8 ----
List archives: http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to 'icecast-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the Icecast-dev
mailing list