[icecast-dev] PATCH: Faststart implementation

Michael Smith msmith at xiph.org
Sat Jan 18 18:35:09 PST 2003

On Sunday 19 January 2003 08:09, Ricardo Galli wrote:
> Hi,
> 	find enclosed a patch to implement faststart (or prebuffering).
> Basically, it stores a number of "refbuf"s, configurable by seconds. When
> a new client connects, it adds the prebuffers to que clients' queue so
> they are delivered as fast as permitted by the connection. As result, the
> players prebuffers are filled up faster giving a better "response".
> I tried to minimise the impact, both in source code and execution. If
> faststart is configured to zero, it has also zero impact in the
> execution. If you don't feel very comfortable with the change in the
> behaviour, you can change the default value to zero
> Hope you like it.
> Regards,

There's a bad interaction here between the predata and this faststart. Suppose 
we have two logical streams (A and B), and the stream has just recently got 
to logical stream B. Now, this means the fast start queue contains the end of 
stream A, then the stream B headers, then the start of stream B audio data.

So, we send to the client:
        predata   (stream B headers)
        faststart (stream A data,
                   stream B headers,
                   stream B data)

Which is a corrupt stream. 


--- >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