On Saturday 16 November 2002 15:04, Ian wrote: I don't think you need to change the SplitFile format. You won't save much space by messing with it. The amount of stuff that is the same for each block -- i.e. 2 lines of FEC params -- is trivial in comparison with the amount of stuff that is different for each block -- i.e. the CHK's of the the data and check blocks.
Why not just make a new Metadata type: Stream.BlockSize=1000000 Stream.BlockTimeMs=ea600 Stream.StartTime=??? (too lazy to calculate example) Stream.BlockDBR=SSK at xdDLu9KYaJGEL9543hOrarcoFM8PAgM/PussyGalore//catcam e.g. A stream with 16MB blocks updated once every 16 minutes. The client should read the data off off the DBR, which probably is a FEC SplitFile, but doesn't even need to be spec'd. The BlockTimeMs field is actually redundant. We could force the client to read it out of the DBR. You could also add your string description field too if there was a good reason not to using the existing Info metadata type. Offtopic: I think the focus on streaming is somewhat misguided. People who talk about QOS guarantees over freenet are either liars or fools. Continually reinserting the same content but with enough salt so that its CHKs don't collide is silly. Such an approach downplays Freenet's fundamental strength in distributed caching while making its weakness in lack of QOS guarantee painfully apparent. A much better approach would be to come up with a convention for publishing information about the multimedia files to concatenate that the client app can use to render a continuous stream. http://www.w3.org/AudioVideo/ > > Here is the current SplitFile metadata format: > > SplitFile?.Size=<hex file size> > SplitFile?.BlockCount=<hex no. of data blocks> > [SplitFile.CheckBlockCount=<hex. no of check blocks>] > SplitFile?.Block.<n>=<URI> > [SplitFile.Graph.<x>=a,b,c...] > > How about another set of possible SplitFile settings, which would be > mutually exclusive with the above, that would allow streaming of things > such as mp3s and oggs: > > SplitFile.Continuous=yes > SplitFile.Prefix=<URI fragment> > SplitFile.StartTime=<hex. insertion time of first block in seconds since > epoch> > SplitFile.BlockTime=<hex. milli-seconds between blocks> > [SplitFile.StreamInfo.<n>=<string>] > > Explanation: > > Continuous=yes indicates that this is a continuous stream, rather than a > finite splitfile. > > Prefix is a KSK or SSK URI fragment such as > "freenet:SSK@<pubkey>/stream1/" to which hex numbers will be appended > for retrieval of each block. People pay attention to you. Don't advocate dumb this like using KSK keys. > > StartTime is the time in seconds since the epoch after the first block > was added. > > BlockTime is the time interval between insertion of successive blocks. > > StreamInfo are arbitrary strings which can contain additional data about > the stream (such as format etc). > > --- > > This may not be perfect, but it is a starting point. Someone who > understands FEC can figure out how to add FEC functionality. > > Ian. ---------------------------------------- Content-Type: application/pgp-signature; charset="us-ascii"; name="Attachment: 1" Content-Transfer-Encoding: 7bit Content-Description: ---------------------------------------- _______________________________________________ devl mailing list devl at freenetproject.org http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/devl
