[MPlayer-dev-eng] Nut and B frames
Michael Niedermayer
michaelni at gmx.at
Tue Apr 27 19:22:17 CEST 2004
Hi
On Tuesday 27 April 2004 18:43, D Richard Felker III wrote:
> On Tue, Apr 27, 2004 at 12:28:28PM -0400, D Richard Felker III wrote:
> > I'm still not sure how to write down the rule for the muxer, tho...
> > The basic principle is that timestamps should be monotone except that
> > reference frames needed should be stored in decode order. But the
> > rule gets complicated when you have multiple streams with out-of-order
> > frames... :)
>
> Actually there's one other solution I sort of like. It wastes a small
> amount of space, but it seems more correct...
>
> For out-of-order frames, mux the frame in decode order with NO pts.
> Then include a dummy frame (0 byte) at the presentation time for the
> frame. This dummy frame just means "display the next frame the codec
> outputs".
hmm, iam starting to really hate b frames
anyway, theres yet another possibility, just additionally store reordered pts
if the stream contains b frames, that way we can
1. enforce monotonicity
2. support push style demuxers
3. store frames in decoding order as required by the mpeg specs
how to store reordered pts?
possibility 1: index into array of previously decoded pts values
possibility 2: like pts
possibility 3: simply the difference to the pts
possibility 4: like 3 but exchange how pts and reordered pts are stored
[...]
--
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