[NUT-devel] Issues

Michael Niedermayer michaelni at gmx.at
Sun Mar 5 14:59:09 CET 2006


Hi

On Sat, Mar 04, 2006 at 06:48:34PM +0200, Oded Shimon wrote:
> On Fri, Mar 03, 2006 at 11:50:44PM +0100, Michael Niedermayer wrote:
> > On Fri, Mar 03, 2006 at 08:43:50PM +0200, Oded Shimon wrote:
> > > I'm somewhat confused by that statement.. You mean, you don't mind a rule 
> > > "all info packets must come after main headers", but against "all info 
> > > packets with X must come after main headers".
> > 
> > yes
> > 
> > 
> > > 
> > > Well, OK, how do you feel about:
> > > all info packets must come after main headers
> > 
> > iam very slightly against this but i dont really care
> > 
> > 
> > > all info frames must be hapter_id < 0
> > > 
> > > And...
> > > all info frames must have chapter_start<=pts<=chapter_end .
> > 
> > is there anything info frames can what info packets cant? if no
> > then i dont care about how info frames are restricted as i would
> > simply choose not to use them
> > otherwise i very strongly object against both
> 
> OK, figured you'd be against...
> 
> I'll outline what I want... (and I think what Rich wants)
> 
> 1. Info packets, which can only come after main headers, are "global" in 
> that they never provide new information - after reading them once when 
> first reading main headers, you can safely skip all future info packets 
> when you skip headers as well. This is basically the rule in the spec 
> right now:
> All info packets MUST appear after main headers at begginning of file, and
> SHOULD be repeated after all main headers unless they are very large.
> 
> 2. Info frames never store global info, and the only reason to use them 
> would be that not all information is known when beginning to create the 
> file (live streamm...). Finding info frames for a certain region does not 
> need to parse the whole file, and not because the demuxer lives on an 
> assumption that the muxer is sane, but because the spec explicitly says so.
> 
> 
> Michael, do you have a spec to accomodate these goals together with your 
> own?..

no, there is no such spec


> 
> One more idea:
> All info frames  pts<=chapter_end
> and
> There must be a frame with pts==chapter_start (convert_ts or whatever)
> 
> 
> I'm hating that there is so much controversy over such a.. cosmetic issue :/

this is not a cosmetic issue, you guys want restrictions which make no sense
and which restrict actually usefull and needed cases


heres what i have in my nut fork on my disk: (note, there are no info streams)

Rules for realtime streams:

If a info packet X is transmitted anywhere then an info packet with the same
chapter and stream_id MUST be placed so that there is never a mainheader
and following frame covered by the info packet without the info packet
inbetween
example: M(mainheader) F(frame covered by infoPacket) f(other frame) I(info)
 M f f M f I f F F M I F F M I F F f f M f f M
as a special exception very large and unimportant info packets can be 
transmitted less often

If 2 info packets have the same chapter_id and stream_id then the earlier
MUST be ignored (the last info packet is the most correct, this allows
updating or correcting info)


Rules for non realtime streams:

2 info packets with the same chapter_id and stream_id MUST be identical

Every info packet which is stored anywhere in the file MUST also be stored
after every mainheader-streamheader set

[...]
-- 
Michael




More information about the NUT-devel mailing list