Introduce independent hstride and vstride, and use them.

Bug: 27589011
Bug: IMINAN-49451

Change-Id: I4d7069baef5d01e6009b0e72a6913f1de370b9e9
Signed-off-by: Alistair Strachan <alistair.strachan@imgtec.com>
Signed-off-by: Austin Hu <austin.hu@intel.com>
diff --git a/videodecoder/VideoDecoderBase.cpp b/videodecoder/VideoDecoderBase.cpp
index ceb7b60..6d214bb 100644
--- a/videodecoder/VideoDecoderBase.cpp
+++ b/videodecoder/VideoDecoderBase.cpp
@@ -913,14 +913,14 @@
             mVASurfaceAttrib->pixel_format = VA_FOURCC_NV12;
             mVASurfaceAttrib->width = mVideoFormatInfo.surfaceWidth;
             mVASurfaceAttrib->height = mVideoFormatInfo.surfaceHeight;
-            mVASurfaceAttrib->data_size = mConfigBuffer.graphicBufferStride * mVideoFormatInfo.surfaceHeight * 1.5;
+            mVASurfaceAttrib->data_size = mConfigBuffer.graphicBufferHStride * mConfigBuffer.graphicBufferVStride * 1.5;
             mVASurfaceAttrib->num_planes = 2;
-            mVASurfaceAttrib->pitches[0] = mConfigBuffer.graphicBufferStride;
-            mVASurfaceAttrib->pitches[1] = mConfigBuffer.graphicBufferStride;
+            mVASurfaceAttrib->pitches[0] = mConfigBuffer.graphicBufferHStride;
+            mVASurfaceAttrib->pitches[1] = mConfigBuffer.graphicBufferHStride;
             mVASurfaceAttrib->pitches[2] = 0;
             mVASurfaceAttrib->pitches[3] = 0;
             mVASurfaceAttrib->offsets[0] = 0;
-            mVASurfaceAttrib->offsets[1] = mConfigBuffer.graphicBufferStride * mVideoFormatInfo.surfaceHeight;
+            mVASurfaceAttrib->offsets[1] = mConfigBuffer.graphicBufferHStride * mConfigBuffer.graphicBufferVStride;
             mVASurfaceAttrib->offsets[2] = 0;
             mVASurfaceAttrib->offsets[3] = 0;
             mVASurfaceAttrib->private_data = (void *)mConfigBuffer.nativeWindow;
@@ -1325,14 +1325,14 @@
     surfExtBuf.pixel_format = VA_FOURCC_NV12;
     surfExtBuf.width = mVideoFormatInfo.surfaceWidth;
     surfExtBuf.height = mVideoFormatInfo.surfaceHeight;
-    surfExtBuf.data_size = mConfigBuffer.graphicBufferStride * mVideoFormatInfo.surfaceHeight * 1.5;
+    surfExtBuf.data_size = mConfigBuffer.graphicBufferHStride * mConfigBuffer.graphicBufferVStride * 1.5;
     surfExtBuf.num_planes = 2;
-    surfExtBuf.pitches[0] = mConfigBuffer.graphicBufferStride;
-    surfExtBuf.pitches[1] = mConfigBuffer.graphicBufferStride;
+    surfExtBuf.pitches[0] = mConfigBuffer.graphicBufferHStride;
+    surfExtBuf.pitches[1] = mConfigBuffer.graphicBufferHStride;
     surfExtBuf.pitches[2] = 0;
     surfExtBuf.pitches[3] = 0;
     surfExtBuf.offsets[0] = 0;
-    surfExtBuf.offsets[1] = mConfigBuffer.graphicBufferStride * mVideoFormatInfo.surfaceHeight;
+    surfExtBuf.offsets[1] = mConfigBuffer.graphicBufferHStride * mConfigBuffer.graphicBufferVStride;
     surfExtBuf.offsets[2] = 0;
     surfExtBuf.offsets[3] = 0;
     surfExtBuf.private_data = (void *)mConfigBuffer.nativeWindow;
diff --git a/videodecoder/VideoDecoderDefs.h b/videodecoder/VideoDecoderDefs.h
index 70d2319..76451a4 100644
--- a/videodecoder/VideoDecoderDefs.h
+++ b/videodecoder/VideoDecoderDefs.h
@@ -148,7 +148,8 @@
     VAProfile profile;
     uint32_t flag;
     void *graphicBufferHandler[MAX_GRAPHIC_BUFFER_NUM];
-    uint32_t graphicBufferStride;
+    uint32_t graphicBufferHStride;
+    uint32_t graphicBufferVStride;
     uint32_t graphicBufferColorFormat;
     uint32_t graphicBufferWidth;
     uint32_t graphicBufferHeight;