Fix for YUV bugs

Two issues, YUV intrinsic would repeat u&v for the edge padding
During the support for flexible YUV, u&v got swapped in the accessor.

bug 10826418

Change-Id: I1cf6e27c2114807d6aece4f9dd44257d4f4aa477
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index 9f217e8..d2f5f30 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -818,10 +818,12 @@
             dst += alloc->mHal.drvState.lod[lod].stride;
         }
         if (alloc->mHal.state.yuv) {
+            size_t clineSize = lineSize;
             int lod = 1;
             int maxLod = 2;
             if (alloc->mHal.state.yuv == HAL_PIXEL_FORMAT_YV12) {
                 maxLod = 3;
+                clineSize >>= 1;
             } else if (alloc->mHal.state.yuv == HAL_PIXEL_FORMAT_YCrCb_420_SP) {
                 lod = 2;
                 maxLod = 3;
@@ -831,7 +833,7 @@
                 uint8_t *dst = GetOffsetPtr(alloc, xoff, yoff, 0, lod, face);
 
                 for (uint32_t line=(yoff >> 1); line < ((yoff+h)>>1); line++) {
-                    memcpy(dst, src, lineSize);
+                    memcpy(dst, src, clineSize);
                     src += alloc->mHal.drvState.lod[lod].stride;
                     dst += alloc->mHal.drvState.lod[lod].stride;
                 }