From 94bff3a5bcd65f103ad45ca21415ab9d8022ff96 Mon Sep 17 00:00:00 2001 From: Lim Siew Hoon Date: Fri, 1 Jul 2016 13:29:11 +0800 Subject: avoid U_row overwrite NULL value if src_fourcc and dst_fourcc is NV12 Signed-off-by: Lim Siew Hoon (cherry picked from commit 1f8aa1546182667cf70484b0c08959b08edb5a84) --- test/loadsurface.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/test/loadsurface.h b/test/loadsurface.h index 4d7be98..82cf61c 100755 --- a/test/loadsurface.h +++ b/test/loadsurface.h @@ -371,9 +371,12 @@ static int upload_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id, v_ptr = src_U + row * (src_width/2); u_ptr = src_V + row * (src_width/2); } - for(j = 0; j < src_width/2; j++) { - U_row[2*j] = u_ptr[j]; - U_row[2*j+1] = v_ptr[j]; + if ((src_fourcc == VA_FOURCC_IYUV) || + (src_fourcc == VA_FOURCC_YV12)) { + for(j = 0; j < src_width/2; j++) { + U_row[2*j] = u_ptr[j]; + U_row[2*j+1] = v_ptr[j]; + } } break; case VA_FOURCC_IYUV: @@ -461,9 +464,12 @@ static int download_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id, v_ptr = dst_U + row * (dst_width/2); u_ptr = dst_V + row * (dst_width/2); } - for(j = 0; j < dst_width/2; j++) { - u_ptr[j] = U_row[2*j]; - v_ptr[j] = U_row[2*j+1]; + if ((dst_fourcc == VA_FOURCC_IYUV) || + (dst_fourcc == VA_FOURCC_YV12)) { + for(j = 0; j < dst_width/2; j++) { + u_ptr[j] = U_row[2*j]; + v_ptr[j] = U_row[2*j+1]; + } } break; case VA_FOURCC_IYUV: -- cgit v1.2.1