[icecast-dev] Re: PATCH: increase network congestion resilience
Ricardo Galli
gallir at uib.es
Sat Jan 18 08:18:58 PST 2003
On Saturday 18 January 2003 16:04, Michael Smith shaped the electrons to
shout:
> On Sunday 19 January 2003 01:59, Ricardo Galli wrote:
> > On Saturday 18 January 2003 03:37, Michael Smith shaped the electrons
> > to
> >
> > shout:
> > > We can't just drop packets, the transmission model assumed by the
> > > format handlers (and required by at least one of them) will not
> > > permit
> >
> > It's not vorbis. Does it?
>
> Vorbis certainly DOES require us to not drop packets. It'll work most
> of the time, but if you happen to do it at the wrong time, you'll end
> up sending a corrupt stream to the client. This is a bad idea.
...
> Yeah, you've been lucky (well, not THAT lucky, you're relatively
> unlikely to hit the broken cases) and not done this at one of the times
> where it will cause errors.
In icecast/vorbis each refbuf is composed of a entire page, and the
documentation (http://www.xiph.org/ogg/vorbis/doc/oggstream.html) states
that a page contains the necessary headers to reconstruct the packetsand
re-sync the stream. So, the players must be able continue playing if it
receives an out of sequence page.
Because a refbuf is a page, we could drop them all but the logical stream
headers, which are cached and sent first (easy to check). So, before
discarding a page, we should check is "complete" (in the sense that the
headers were not already sent, i.e. client->pos == 0) and that is not a a
pre_data.
OTH, it seems logic and without that property icecast wouldn't work: when
a new client connects, icecast sends it a pre_data and then start with
the first available _random_ refbuf. What's the problem with "restarting"
the stream with a "new", out of sequence, refbuf?
But I could be missing something, sorry if so.
<p>
--
ricardo galli GPG id C8114D34
--- >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