[MPlayer-dev-eng] Lots of stuff for NUT [new simplification, lower overhead]

Rich Felker dalias at aerifal.cx
Fri Jan 6 08:16:30 CET 2006


On Fri, Jan 06, 2006 at 08:50:40AM +0200, Oded Shimon wrote:
> On Thu, Jan 05, 2006 at 03:22:05PM -0500, Rich Felker wrote:
> > OK instead of just flaming I'm going to try to be useful. Here is a
> > proposal to reduce the size and complexity of the index:
> > 
> > syncpoint_rel_pos                       v
> > keyframe_bitmask                        v
> > for (i=0; i<nstreams; i++)
> >     if (keyframe_bitmask & (1<<i))
> >         stream_pts                      v
> 
> syncpoints					v
> M						v
> for (i=0; i<syncpoints; i++) {
>     keyframe_bitmask				v
>     for (j=0; j<nstreams; j++) {
>         if (keyframe_bitmask & (1<<i)) {
>             if (repeat[j]) repeat[j]--
>             else {
>                 A				v
>                 if (A > M) last_diff[j] = A - M
>                 else repeat[j] = A
>             }
>             last_pts[j] += last_diff[j]
>             syncpoint[i].stream[j].key_pts = last_pts
>         }
>     }
> }
> 
> 
> Even in Vorbis, pts diff's usually come in multiples.

I doubt this helps. You realize that pts diff will almost always be 1
byte vlc anyway, right?? All this fancy repeat stuff is just confusing
and makes NUT look complicated to someone reading the spec.

Actually with large keyint, video pts will often be 2 bytes. However,
the size of pts_diff is inversely proportional to the portion of
syncpoints with keyframe_bitmask set for the stream, so they won't
matter.

Rich




More information about the MPlayer-dev-eng mailing list