[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-dev] New network structure

From: Tomas Groth
Subject: [Gnash-dev] New network structure
Date: Sat, 3 Mar 2007 12:18:20 +0100 (CET)

Hi all,

Since the current network structure is based on libcurl, it has some of the
limitations of libcurl, which makes it hard to implement some of the features
needed, such as seeking in real streams, and obtaining the size of a file being
downloaded. Also so far rtmp support in curl only exists in a separate patch.

To solve this issue I'd like to suggest that we switch to our own network code,
which is already in use in cygnal, though it will need to be worked on to fully
support https and client side http and rtmp.

Right now we connect/download stuff using StreamProvider, which returns a
tu_file pointer from curl_adapter, on which we read from, and data is
downloaded progressively using curl as we need it. 

Instead of curl we should then use our own network code, and use a new
network_adapter like the current curl_adapter is used a an interface to curl.

Here is some of the changes from the current model:

* When downloading, a thread to download the entire file should be started.
Since we want to be able to access the file meanwhile this should be done in
small chunks and using mutexes. When handling real streams the thread should
make sure X bytes is buffered at all time.
* We should probably use a circular buffer when handling real streams.
* Support for callbacks are needed, since LoadVars and NetStream (and maybe
others) needs support for something to happen (for example: start playback)
when X bytes has been loaded.

Support for some http is already in cygnal, which will be moved to libbase

If you have any comments or suggestions don't hesitate to post them.



Alt i én. Få Yahoo! Mail med adressekartotek, kalender og

reply via email to

[Prev in Thread] Current Thread [Next in Thread]