Yeah, it is fix for YV12, not NV12. I need change the comment.
> -----Original Message----- > From: Xiang, Haihao > Sent: Thursday, June 28, 2012 9:39 AM > To: Zhao, Halley > Cc: [email protected] > Subject: Re: [Libva] [PATCH 1/6 v2 libva] test: fix an issue in loading > NV12 surface > > > Could you double-check the issue in loading surface ? I think you are > fixing the issue for YV12 surface. > > > --- > > test/loadsurface.h | 28 ++++++++++++++++++++++------ > > 1 files changed, 22 insertions(+), 6 deletions(-) mode change > 100644 > > => 100755 test/loadsurface.h > > > > diff --git a/test/loadsurface.h b/test/loadsurface.h old mode 100644 > > new mode 100755 index 2cd09c3..2ffdc21 > > --- a/test/loadsurface.h > > +++ b/test/loadsurface.h > > @@ -220,21 +220,37 @@ static int upload_surface(VADisplay va_dpy, > VASurfaceID surface_id, > > VAImage surface_image; > > void *surface_p=NULL, *U_start,*V_start; > > VAStatus va_status; > > + unsigned int pitches[3]; > > > > va_status = vaDeriveImage(va_dpy,surface_id,&surface_image); > > CHECK_VASTATUS(va_status,"vaDeriveImage"); > > > > vaMapBuffer(va_dpy,surface_image.buf,&surface_p); > > assert(VA_STATUS_SUCCESS == va_status); > > - > > - U_start = (char *)surface_p + surface_image.offsets[1]; > > - V_start = (char *)surface_p + surface_image.offsets[2]; > > + > > + pitches[0] = surface_image.pitches[0]; > > + switch (surface_image.format.fourcc) { > > + case VA_FOURCC_NV12: > > + U_start = (char *)surface_p + surface_image.offsets[1]; > > + V_start = U_start + 1; > > + pitches[1] = surface_image.pitches[1]; > > + pitches[2] = surface_image.pitches[1]; > > + break; > > + case VA_FOURCC_YV12: > > + U_start = (char *)surface_p + surface_image.offsets[2]; > > + V_start = (char *)surface_p + surface_image.offsets[1]; > > + pitches[1] = surface_image.pitches[2]; > > + pitches[2] = surface_image.pitches[1]; > > + break; > > Could you also add the support for I420 ? > > > + default: > > + assert(0); > > + } > > > > /* assume surface is planar format */ > > yuvgen_planar(surface_image.width, surface_image.height, > > - (unsigned char *)surface_p, > surface_image.pitches[0], > > - (unsigned char *)U_start, surface_image.pitches[1], > > - (unsigned char *)V_start, surface_image.pitches[2], > > + (unsigned char *)surface_p, pitches[0], > > + (unsigned char *)U_start, pitches[1], > > + (unsigned char *)V_start, pitches[2], > > (surface_image.format.fourcc==VA_FOURCC_NV12), > > box_width, row_shift, field); > > > _______________________________________________ Libva mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libva
