Index: vf_kerndeint.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/vf_kerndeint.c,v retrieving revision 1.1 diff -u -b -B -r1.1 vf_kerndeint.c --- vf_kerndeint.c 29 Jan 2004 09:50:17 -0000 1.1 +++ vf_kerndeint.c 29 Jan 2004 11:42:58 -0000 @@ -85,6 +85,7 @@ const unsigned char *srcp, *srcpp, *srcpn, *srcpnn, *srcppp, *srcp3p, *srcp3n, *srcp4p, *srcp4n; unsigned char *dstp, *dstp_saved; int src_pitch; + int psrc_pitch; int dst_pitch; int x, y, z; int n = vf->priv->frame++; @@ -116,6 +117,7 @@ srcp = srcp_saved = mpi->planes[z]; src_pitch = mpi->stride[z]; + psrc_pitch = pmpi->stride[z]; dstp = dstp_saved = dmpi->planes[z]; dst_pitch = dmpi->stride[z]; srcp = srcp_saved + (1-order) * src_pitch; @@ -135,13 +137,13 @@ /* For the other field choose adaptively between using the previous field or the interpolant from the current field. */ - prvp = pmpi->planes[z] + 5*src_pitch - (1-order)*src_pitch; - prvpp = prvp - src_pitch; - prvppp = prvp - 2*src_pitch; - prvp4p = prvp - 4*src_pitch; - prvpn = prvp + src_pitch; - prvpnn = prvp + 2*src_pitch; - prvp4n = prvp + 4*src_pitch; + prvp = pmpi->planes[z] + 5*psrc_pitch - (1-order)*psrc_pitch; + prvpp = prvp - psrc_pitch; + prvppp = prvp - 2*psrc_pitch; + prvp4p = prvp - 4*psrc_pitch; + prvpn = prvp + psrc_pitch; + prvpnn = prvp + 2*psrc_pitch; + prvp4n = prvp + 4*psrc_pitch; srcp = srcp_saved + 5*src_pitch - (1-order)*src_pitch; srcpp = srcp - src_pitch; srcppp = srcp - 2*src_pitch; @@ -242,13 +246,13 @@ dstp[x] = srcp[x]; } } - prvp += 2*src_pitch; - prvpp += 2*src_pitch; - prvppp += 2*src_pitch; - prvpn += 2*src_pitch; - prvpnn += 2*src_pitch; - prvp4p += 2*src_pitch; - prvp4n += 2*src_pitch; + prvp += 2*psrc_pitch; + prvpp += 2*psrc_pitch; + prvppp += 2*psrc_pitch; + prvpn += 2*psrc_pitch; + prvpnn += 2*psrc_pitch; + prvp4p += 2*psrc_pitch; + prvp4n += 2*psrc_pitch; srcp += 2*src_pitch; srcpp += 2*src_pitch; srcppp += 2*src_pitch; @@ -260,7 +264,14 @@ srcp4n += 2*src_pitch; dstp += 2*dst_pitch; } - memcpy(pmpi->planes[z], mpi->planes[z], w*h); + + srcp = mpi->planes[z]; + dstp = pmpi->planes[z]; + for (y=0; y