[MPlayer-dev-eng] NUT dts proposal
Michael Niedermayer
michaelni at gmx.at
Wed Sep 7 13:32:46 CEST 2005
Hi
On Tue, Sep 06, 2005 at 06:49:55PM -0400, Rich Felker wrote:
> After more discussion on irc, I'm convinced that the current "dts"
> (decode timestamp) spec in NUT has both some pros and cons..
>
> Pros:
> - dts is very easy to compute.
> - no future context required.
> - for streams with a steady flow of frames, accurately represents the
> optimal time to do the actual decoding for smooth cpu utilization.
>
> Cons:
> - in the presence of long gaps with no frames, dts requires the first
> decode_delay frames after the gap to be stored before the gap, making
> them impossible to find efficiently.
> - generally makes it difficult to search out a frame by pts, since the
> storage location of a frame might vary considerably from the location
> of frames in other streams with similar pts (mainly if framerates are
> not comparable).
>
> Recently uau proposed on IRC, and I independently came up with
> something similar as well, for an alternate definition of dts:
>
> frame[n].dts = min(frame[n].pts, frame[n+1].pts, ..., frame[n+d].pts)
> (where d=decode_delay)
>
> Consequences:
>
> Consider the typical IPB stream:
>
> Muxed frame order: I0 P3 B1 B2 P6 B4 B5 ...
> Current dts system: -1 0 1 2 3 4 5
> Possible new dts: 0 1 1 2 4 4 5
>
> And the pathological IPB stream with huge gaps:
>
> Muxed frame oder: I0 P3 B1 B2 [gap] I100 P103 B101 B102
> Current dts system: -1 0 1 2 3 100 101 102
> Possible new dts: 0 1 1 2 100 101 101 102
and what about:
Muxed frame oder: I0 P3 B1 B2 I100 B4 ... B99 P103 B101 B102
Current dts system: -1 0 1 2 3 4 ... 99 100 101 102
Possible new dts: 0 1 1 2 4 4 ... 99 101 101 102
here the new system "fails" too, and as loren has already said
the alternatives have issues with 1 in 1 out decoders
[...]
--
Michael
More information about the MPlayer-dev-eng
mailing list