[MPlayer-dev-eng] Lots of stuff for NUT

Oded Shimon ods15 at ods15.dyndns.org
Thu Jan 12 20:02:06 CET 2006


On Thu, Jan 12, 2006 at 07:29:01PM +0100, Michael Niedermayer wrote:
> On Thu, Jan 12, 2006 at 07:49:38PM +0200, Oded Shimon wrote:
> [...]
> > high bitrate:
> > Syncpoints: 27462 size: 430989  (0 subtitle streams)
> > Syncpoints: 27473 size: 553144  (2 subtitle streams)
> > Syncpoints: 27515 size: 817419  (10 subtitle streams)
> > 
> > low bitrate:
> > Syncpoints: 19403 size: 296722  (0 subtitle streams)
> > Syncpoints: 19413 size: 349040  (2 subtitle streams)
> > Syncpoints: 19434 size: 433317  (10 subtitle streams)
> > 
> > 
> > I win. :)
> 
> congratulations! :)
> 
> just for fun (should be dead easy to test), how large would these be if we
> would divide by 16384 instead of 8?

high bitrate:
Syncpoints: 27461 size: 357457  (0 subtitle streams)
Syncpoints: 27471 size: 413295  (2 subtitle streams)
Syncpoints: 27513 size: 568532  (10 subtitle streams)

low bitrate:
Syncpoints: 19402 size: 251973  (0 subtitle streams)
Syncpoints: 19410 size: 281056  (2 subtitle streams)
Syncpoints: 19432 size: 356410  (10 subtitle streams)

I'm sure Rich will answer in the form of a flame, but I realized now, since 
we have to linear search anyway, is this accuracey crucial?...
BTW, we should obviously use max_distance/2 or something, no hard coded 
values...

> > We still need a way to efficiently code pts's for non zero decode delay 
> > streams together with all this, or are you not convinced yet?...
> 
> no iam not convinced

I think it IS possible, however it is nowhere near as easy to wrap your 
head around all possible scenarios.

There's still the question of, what ts do you use for the syncpoint.. Using 
current_dts is wrong because it jumps up and down wildly... (Using it even 
as a refernce for making the back ptr's and deciding the ts for the 
timestamp by the keyframes is still wrong, as a different refernce can give 
different results..)

In bizarre cases, I think it is still possible for having the need to put 
2 syncpoints immediately next to each other. A silly situation coming to 
mind is a very delayed stream with an EOR...

S1 K S2 K S3 K S4 K S5 EOR ...

S5 points to S1 because the stream is very delayed, now, the very next 
frame of another stream after an EOR already has a dts higher than the pts 
of the last keyframe. You need to put several syncpoints between the EOR 
and this new frame, each one has a different pts and back points to S2-S4.

This is all insane stuff, but it is legal.. NUT should not fail in legal 
situations...

If you're confused, ask, and I'll try to draw a better drawing.

- ods15




More information about the MPlayer-dev-eng mailing list