[NUT-devel] possible error in the spec for the index

Oded Shimon ods15 at ods15.dyndns.org
Sat Dec 23 11:42:39 CET 2006


On Fri, Nov 17, 2006 at 08:22:43AM +0200, Oded Shimon wrote:
> On Sun, Nov 12, 2006 at 12:33:46AM +0100, Michael Niedermayer wrote:
> > Hi
> > 
> > when trying to read the index from a libnut generated file i stumbled
> > across a odd problem in how the index is stored, the problem is that
> > 
> > from nut.txt:
> > has_keyframe
> >     indicates whether this stream has a keyframe between this syncpoint and
> >     the last syncpoint.
> > 
> > what is "this syncpoint", libnut seems to use syncpoint[0] for has_keyframe[0]
> > as "this" but with that definition
> > has_keyframe[0]=0 (which is harmless)
> > more problematic is
> > for(; j<n && j<syncpoints; j++){
> > 
> > a keyframe after the last syncpoint would be has_keyframe[syncpoints]
> > and so the pts/eor loop wouldnt be run on it -> we would know there
> > is a keyframe but we dont not know its pts
> > 
> > obvious solutions (assuiming i didnt miss something)
> > 1. ignore it, its just one keyframe per stream which isnt in the index
> > 2. redefine has_keyframe so [0] is for sp[0] ... sp[1]
> > 3. change j<syncpoints to j<syncpoints+1
> 
> I'm mostly leaning to 1. Otherwise, I preffer 2.
> 3 has a small issue of describing more syncpoints than there are in the 
> file, or told about in the index (in the first loop). 3 has the 
> slight advantage of being backwards compatible in careful demuxers...

No reply on this issue, does that mean we all agree on option 1. ?

- ods15



More information about the NUT-devel mailing list