[MPlayer-dev-eng] Lots of stuff for NUT
Michael Niedermayer
michaelni at gmx.at
Thu Jan 12 03:45:16 CET 2006
Hi
On Wed, Jan 11, 2006 at 09:12:49PM +0200, Oded Shimon wrote:
> On Wed, Jan 11, 2006 at 04:54:37PM +0100, Michael Niedermayer wrote:
> > On Wed, Jan 11, 2006 at 04:58:46PM +0200, Oded Shimon wrote:
> > > 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
>
> P.S. I thought it over and I agree, here's a new back_ptr dump, the only
> zero back_ptr's are the first syncpoints in the file, and ones after an
> EOR...
try1:
syncpoint:
startcode u(64)
coded_pts v
stream = coded_pts % stream_count
pts = coded_pts/stream_count
u[0]= back_ptr[0] v
u_count= 1
for (i=1; i<stream_count; i++) {
A v
A1= A>>1;
if(A&1){
u[u_count]= A1;
A1= u_count++;
}else if(A1 >= u_count){
u[u_count]= u[A1 % u_count];
A1 /= u_count;
if(A1&1) u[u_count] += A1>>1;
else u[u_count] -= A1>>1;
A1= u_count++;
}
back_ptr[i]= u[A1]
}
try2:
syncpoint:
startcode u(64)
coded_pts v
stream = coded_pts % stream_count
pts = coded_pts/stream_count
u[0]= 0
u[1]= back_ptr[0] v
u_count= 2
for (i=1; i<stream_count; i++) {
A v
if(A >= u_count){
u[u_count]= u[A % u_count];
A /= u_count;
if(A&1) u[u_count] += A>>1;
else u[u_count] -= A>>1;
A= u_count++;
}
back_ptr[i]= u[A]
}
[...]
--
Michael
More information about the MPlayer-dev-eng
mailing list