[MPlayer-dev-eng] Lots of stuff for NUT
Michael Niedermayer
michaelni at gmx.at
Sat Jan 14 02:06:01 CET 2006
Hi
On Sat, Jan 14, 2006 at 12:34:55AM +0200, Oded Shimon wrote:
> On Fri, Jan 13, 2006 at 11:25:39PM +0100, Michael Niedermayer wrote:
[...]
> > > > > Since (I think) we have completely prooved that both methods are 100%
> > > > > working, the tradeoff here is purely:
> > > > > 1. complexity and allowing several syncpoints with no frame inbetween
> > > > > 2. overhead of (most likely) 1 byte per syncpoint for almost any file
> > > > >
> > > > > My vote is still 2, and I have a feeling Rich will flame on the several
> > > > > syncpoints thing, however I'm gonna start implementing single ts, and if
> > > > > Rich agrees with it then I'm OK with finalizing it...
> > >
> > > OK, umm, I'm trying, but as I feared it is getting increasingly much more
> > > complicated, especially the interleaved dts cache flushing part... I'm
> > > still highly suggesting multiple ts. The overhead is REALLY not an issue
> > > now, so it's not an excuse IMO... (You do remember that it is as many ts's
> > > as the amount of delay>0 streams, plus one, right? So rarely EVER is more
> > > than two ts necessary..)
> >
> > the flushing is needed anyway, if you want delay>0 EORs as 1in 1out decoders
> > need the extra packets to output anything and for delay=0 EORs theres no
> > flushing if i understand it correctly so really i cant see how multiple ts
> > are going to simplify anything here ...
>
> With multiple ts there is no interleaved cache flushing that causes
> syncpoints. There isn't even any possible situation of 2 syncpoints with no
> frames inbetween. I finished all the code necessary for multiple ts for the
> nut_write_frame() code in 5 lines:
>
>
> <after writing frame data>
> if (is_key) {
> old_back_ptr = stream->back_ptr;
> stream->back_ptr = nut->last_syncpoint;
> if (nut->last_syncpoint != old_back_ptr) stream->key_pts = pts;
> if (old_back_ptr - nut->last_syncpoint > nut->max_distance) put_syncpoint();
> }
>
>
> Now all you have to do in the syncpoint is grab all stream->key_pts and
> stream->back_ptr, compress and output!.. Certainely much simpler than what
> I'm still trying to implement here.. :/
hmm, what about a method which stores <= 1+num of non 0 delay pts
i mean we only need to store a pts for a delay>0 stream if its pts is >
the SP TS or something like that i think
[...]
--
Michael
More information about the MPlayer-dev-eng
mailing list