[MPlayer-dev-eng] The NUT backward pointers

Michael Niedermayer michaelni at gmx.at
Tue Apr 13 00:31:47 CEST 2004


Hi

On Monday 12 April 2004 22:55, Michael Niedermayer wrote:
> Hi
>
> On Monday 12 April 2004 19:31, D Richard Felker III wrote:
> > On Mon, Apr 12, 2004 at 06:52:29PM +0200, Moritz Bunkus wrote:
> > > Hi,
> > >
> > > > Nut files absolutely MUST NOT contain non-monotone timestamps.
> > >
> > > Ah, that's my clue for a question I've maent to ask for some time
> > > now. How will B frames be stored in nut? Same as in AVI (packed
> > > bitstream)? Non packed? If non packed, in coding or display order? How
> > > will they be timestamped? I'm experimenting with non-packed bitstream,
> > > coding order in Matroska, but mplayer is not too happy about the
> > > timestamps I hand it, and unless nut just stores a packed bitstream
> > > with dummy frames then it'll have some problems as well (mplayer
> > > specific, not due to the file format).
> >
> > Sorry, I wasn't being clear. Of course B frames are stored in coded
> > order with correct timestamps on each, which means the timestamps are
> > "non-monotone". But the monotonicity rule can only be violated for
> > out-of-order decoding, nothing else.
> >
> > The packing like in AVI is absolutely forbidden. Each NUT packet must
> > containe EXACTLY ONE coded frame, whether audio or video. Putting
> > multiple frames in a single container packet is not allowed.
> >
> > BTW, Michael, do we need an "out of order" flag for frames? Or
> > something like that?
>
> hmm, IMHO no, but i just wanted to try bframes in nut, then realized that
> ffmpeg is totally broken when encoding b frames, the only reason why it
> workes with mpeg1/2 is that there are ugly (and not completly working)
> hacks in the mpeg muxer
just tried a b frames in nut file with 7 b frames between non b with the 
"fixed" nut muxer in ffmpeg, and i cant see any AV sync/choppiness issues 
with mplayer ...

[...]
-- 
Michael
level[i]= get_vlc(); i+=get_vlc();		(violates patent EP0266049)
median(mv[y-1][x], mv[y][x-1], mv[y+1][x+1]);	(violates patent #5,905,535)
buf[i]= qp - buf[i-1];				(violates patent #?)
for more examples, see http://mplayerhq.hu/~michael/patent.html
stop it, see http://petition.eurolinux.org & http://petition.ffii.org/eubsa/en




More information about the MPlayer-dev-eng mailing list