[MPlayer-dev-eng] Lots of stuff for NUT
Michael Niedermayer
michaelni at gmx.at
Wed Jan 11 16:54:37 CET 2006
Hi
On Wed, Jan 11, 2006 at 04:58:46PM +0200, Oded Shimon wrote:
> On Wed, Jan 11, 2006 at 03:45:56PM +0100, Michael Niedermayer wrote:
> > On Wed, Jan 11, 2006 at 03:21:38PM +0200, Oded Shimon wrote:
> > > On Wed, Jan 11, 2006 at 11:53:30AM +0100, Michael Niedermayer wrote:
> > > > what about:
> > > > current_dts is the dts of the current frame
> > > > S is the set of all keyframes which have pts <= current_dts
> > > > if adding a keyframe to S causes the backptr change to be >= t then write a
> > > > syncpoint, and assign the maximum pts from S to it
> > >
> > > I'm completely confused by this explanation. Help me with an example. given
> > > this scenario:
> > >
> > > audio: A0 A1 A2 A3 A4 A5 A6
> > > video: I0 P1 P2 I5 B3 B4 P6 P7
> > DTS: -1 0 0 1 1 2 2 3 3 4 4 5 5 6 6
> > SP: X0 X1 X2 X3 X4 X5 X6
> > SP_PTRA - 0 1 2 3 4 5
> > SP_PTRV - 0 0 0 0 2 2
> > SP_PTS - 0 2 3 4 5 6
> >
> > ok, ive added many syncpoints to make it more clear, obviously there
> > would be fewer in practice ...
> > and yes probably the pts selection could be improved by adjusting it
> > downward where possible (X2 2->1)
>
> OK, this seems very similar of the old idea I had of back_ptr not pointing
> to NEAREST keyframe, but most correct keyframe. I remember researching this
> idea thoroughly, and finding at the very least, that it is complicated as
> hell.
whats so complicated on it? not to mention pointing to nearest is totally
wrong
write_sp(){
1. find the most recent keyframes in each stream which have pts<=current dts
2. find the corresponding syncpoints for these keyframes and set the back_ptrs
3. find the first keyframe after each of these syncpoints and set sp_pts to
their maximum pts
}
and when to write it:
"if writing the next frame would cause the syncpoint distance to be >t then
write a syncpoint before the next frame"
together with:
"if any back_ptr would change by >T then write a syncpoint"
work?
or does this fail in some silly case
>
> I think if we code it efficiently, we might as well go for the "almost"
> single pts and save ourselves the high complexity, it is simply not worth
> it.
IMHO having syncpoints point to themselfs is ugly and having more then the
needed pts is ugly too
[...]
--
Michael
More information about the MPlayer-dev-eng
mailing list