version 1.46, 2010/01/15 22:17:10 |
version 1.47, 2010/01/17 16:09:30 |
|
|
} |
} |
diff += oblksz; |
diff += oblksz; |
ifr--; |
ifr--; |
} else if (diff > 0) { |
} else { |
if (ofr == 0) |
if (ofr == 0) |
break; |
break; |
ctx = ctxbuf; |
ctx = ctxbuf; |
|
|
} |
} |
diff -= iblksz; |
diff -= iblksz; |
ofr--; |
ofr--; |
} else { |
|
if (ifr == 0 || ofr == 0) |
|
break; |
|
ctx_start ^= 1; |
|
ctx = ctxbuf + ctx_start; |
|
for (c = inch; c > 0; c--) { |
|
*ctx = *odata++ = *idata++; |
|
ctx += RESAMP_NCTX; |
|
} |
|
ifr--; |
|
ofr--; |
|
diff += oblksz - iblksz; |
|
} |
} |
} |
} |
p->u.resamp.diff = diff; |
p->u.resamp.diff = diff; |
|
|
p = aproc_new(&resamp_ops, name); |
p = aproc_new(&resamp_ops, name); |
p->u.resamp.iblksz = iblksz; |
p->u.resamp.iblksz = iblksz; |
p->u.resamp.oblksz = oblksz; |
p->u.resamp.oblksz = oblksz; |
p->u.resamp.diff = 0; |
p->u.resamp.diff = (iblksz >= oblksz) ? -oblksz : 0; |
p->u.resamp.idelta = 0; |
p->u.resamp.idelta = 0; |
p->u.resamp.odelta = 0; |
p->u.resamp.odelta = 0; |
p->u.resamp.ctx_start = 0; |
p->u.resamp.ctx_start = 0; |