From de01bf2c3ab9333a9767c25b9aa66b47ca89fd50 Mon Sep 17 00:00:00 2001 From: ranma Date: Thu, 29 Jan 2004 17:36:16 +0000 Subject: 10l fix by Jindrich Makovicka git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11880 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/vf_kerndeint.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'libmpcodecs/vf_kerndeint.c') diff --git a/libmpcodecs/vf_kerndeint.c b/libmpcodecs/vf_kerndeint.c index f6eafdd204..a383996bfb 100644 --- a/libmpcodecs/vf_kerndeint.c +++ b/libmpcodecs/vf_kerndeint.c @@ -85,6 +85,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ 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 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ 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 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ /* 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 +244,13 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ 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 +262,14 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ 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