[NUT-devel] info packets/frames

Oded Shimon ods15 at ods15.dyndns.org
Sat Feb 18 15:34:35 CET 2006


On Sat, Feb 18, 2006 at 03:14:44PM +0100, Michael Niedermayer wrote:
> Hi
> 
> On Sat, Feb 18, 2006 at 02:19:00PM +0200, Oded Shimon wrote:
> > On Sat, Feb 18, 2006 at 01:57:25PM +0200, Oded Shimon wrote:
> > > On Sat, Feb 18, 2006 at 12:28:59PM +0100, Michael Niedermayer wrote:
> > > > Hi
> > > > 
> > > > On Sat, Feb 18, 2006 at 10:02:48AM +0200, Oded Shimon wrote:
> > > > [...]
> > > > > I still have one major issue left with info packets - chapters... We need 
> > > > > to decide a sane way to do them and say so in the spec... But that's after 
> > > > > we all agree on this patch. Does anyone have objections left...
> > > > 
> > > > i am against it, my oppinion is either store the table in the file or make it
> > > > constant, or propose to drop "extendible" from the goals first
> > > 
> > > :/
> > > 
> > > Putting the tables in the main header is very very weird. It doesn't belong 
> 
> thats my favorite reasoning why something is bad (its weird, philosophical
> wrong, not unixish, ...)

Well, it is a reason... Things should be logical/sense-making...

> btw, you can also put them in an info packet of course if you prefer ...

This seems to be the only solution I just barely like...

> > > there, it makes it more difficult to mux because even for info streams you 
> > > have to know all your fields before hand (or, i guess you always have the 
> > > option of using the fields directly in the info packets), it's also tricky 
> > > when combining 2 nut files or something...
> 
> huh what?! a muxer would probably have a fixed table which it writes ...
> _this_ is the equivalent to your suggestion, not designing a optimal
> table which isnt needed at all and has negligable gain
> 
> the info packets are string name + type + value triplets, the table is
> a optimization to reduce the size, i vote for droping the table completely
> way before i agree to allowing changing the table without storing it in the
> file, the table was never intended to be changable, if you insist on changing
> it it must be stored in the file

Many containers have ID-to-metadata mappings, and they are fairly static. 
If we have found a way to do this while still being able to, in the far 
future, add new fields, then why not...

I think the only gripe I have with writing the table in some header, is, 
besides the complexity, the fact that we don't have a pre-made table with 
common fields and prepared with "UTF-8" and etc. Id's are more consistent 
than names (some muxer might goof up and use Titel instead of Title, and 
then demuxers won't understand it...).

> > BTW, following your philosophy - the info tables in the main header can 
> > triple the size of the main header (or even more), and a single byte of 
> > damage in this non essential info would break the entire main header and 
> > make the file unplayable...
> 
> you do remember that nut files have a minimum of 3 duplicate main headers?

I'm downloading the file with bittorrent, I only have one copy of the main 
headers, and because of its size it just ended up being on a block 
boundry..
I'm surprised, you were very high strong about all other packets '1 byte 
should cause minimal data loss, even in essential repeated headers', which 
is why we still have stream_id in stream headers..

- ods15




More information about the NUT-devel mailing list