[MPlayer-dev-eng] Nut and B frames

D Richard Felker III dalias at aerifal.cx
Mon Apr 26 13:45:13 CEST 2004


On Mon, Apr 26, 2004 at 07:38:08AM -0400, D Richard Felker III wrote:
> Nut is supposed to have a "perfect interleaving" rule, i.e. if frame B
> comes after frame A, regardless of whether they're part of the same
> stream or different streams, frame B must have a later timestamp than
> frame A (or the same). This is to avoid situations like AVI where
> demuxers have to deal with badly interleaved (or noninterleaved) files
> and thus end up rapidly seeking in order to be able to play the movie.
> But how do B frames (or out-of-order frames in general) fit into this
> picture?
> 
> I see two possibilities:
> 
> 1. In files with B frames, out-of-order frames may be stored anywhere
>    between the previous frame and the next frame in decoding order.
> 
> 2. No special treatment for files with B frames. Perfect interleaving
>    still applies.
> 
> Before you flame and choice #2 sucks, let's hear the arguments for
> both:

By the way, one more argument for #2. If timestamps are never allowed
to go backwards, the lsb timestamp encoding becomes a lot simpler and
can store larger increments in the same number of bits.

Rich




More information about the MPlayer-dev-eng mailing list