Change preview player code also.

Adapt to 32 bit aligned decoder buffers

Change-Id: I631f7e60b8e424af496f45d0e5e292bf9e8a9dde
diff --git a/libvideoeditor/lvpp/VideoEditorTools.cpp b/libvideoeditor/lvpp/VideoEditorTools.cpp
index 99fc6b5..73362ad 100755
--- a/libvideoeditor/lvpp/VideoEditorTools.cpp
+++ b/libvideoeditor/lvpp/VideoEditorTools.cpp
@@ -2161,7 +2161,7 @@
     }

 

     *pContext = M4OSA_NULL ;

-    

+

     return err ;

 }

 

@@ -2222,7 +2222,7 @@
     M4OSA_UInt32    nb_planes;

 

     M4ERR_CHECK_NULL_RETURN_VALUE(M4ERR_PARAMETER, pContext) ;

-    

+

     if(M4AIR_kYUV420AP == pC->m_inputFormat)

     {

         nb_planes = 4;

@@ -2395,7 +2395,7 @@
     }

     /**< Update state */

     pC->m_state = M4AIR_kConfigured;

-    

+

     return M4NO_ERROR ;

 }

 

@@ -3065,8 +3065,9 @@
 

 }

 M4OSA_Void prepareYUV420ImagePlane(M4VIFI_ImagePlane *plane,

-    M4OSA_UInt32 width, M4OSA_UInt32 height, M4VIFI_UInt8 *buffer) {

-    

+    M4OSA_UInt32 width, M4OSA_UInt32 height, M4VIFI_UInt8 *buffer,

+    M4OSA_UInt32 reportedWidth, M4OSA_UInt32 reportedHeight) {

+

     //Y plane

     plane[0].u_width = width;

     plane[0].u_height = height;

@@ -3079,21 +3080,20 @@
     plane[1].u_height = height/2;

     plane[1].u_stride = plane[1].u_width;

     plane[1].u_topleft = 0;

-    plane[1].pac_data = buffer+(width*height);

+    plane[1].pac_data = buffer+(reportedWidth*reportedHeight);

 

     // V Plane

     plane[2].u_width = width/2;

     plane[2].u_height = height/2;

     plane[2].u_stride = plane[2].u_width;

     plane[2].u_topleft = 0;

-    plane[2].pac_data = buffer+(width*height+(width/2)*(height/2));

-    

+    plane[2].pac_data = plane[1].pac_data + ((reportedWidth/2)*(reportedHeight/2));

 }

 

 M4OSA_Void prepareYV12ImagePlane(M4VIFI_ImagePlane *plane,

     M4OSA_UInt32 width, M4OSA_UInt32 height, M4OSA_UInt32 stride,

     M4VIFI_UInt8 *buffer) {

-    

+

     //Y plane

     plane[0].u_width = width;

     plane[0].u_height = height;

@@ -3119,13 +3119,13 @@
     plane[2].pac_data = (buffer +

      plane[0].u_height * android::PreviewRenderer::ALIGN(plane[0].u_stride, 16));

 

-     

+

 }

 

 M4OSA_Void swapImagePlanes(

     M4VIFI_ImagePlane *planeIn, M4VIFI_ImagePlane *planeOut,

     M4VIFI_UInt8 *buffer1, M4VIFI_UInt8 *buffer2) {

-    

+

     planeIn[0].u_height = planeOut[0].u_height;

     planeIn[0].u_width = planeOut[0].u_width;

     planeIn[0].u_stride = planeOut[0].u_stride;

@@ -3167,7 +3167,7 @@
          planeOut[0].u_width*planeOut[0].u_height +

          planeOut[1].u_width*planeOut[1].u_height);

     }

-    

+

 }

 

 M4OSA_Void computePercentageDone(

@@ -3405,7 +3405,8 @@
     return err;

 }

 

-M4OSA_ERR applyEffectsAndRenderingMode(vePostProcessParams    *params) {

+M4OSA_ERR applyEffectsAndRenderingMode(vePostProcessParams *params,

+    M4OSA_UInt32 reportedWidth, M4OSA_UInt32 reportedHeight) {

 

     M4OSA_ERR err = M4NO_ERROR;

     M4VIFI_ImagePlane planeIn[3], planeOut[3];

@@ -3441,12 +3442,12 @@
     }

 

     // Initialize the In plane

-    prepareYUV420ImagePlane(planeIn, params->videoWidth,

-      params->videoHeight, params->vidBuffer);

+    prepareYUV420ImagePlane(planeIn, params->videoWidth, params->videoHeight,

+       params->vidBuffer, reportedWidth, reportedHeight);

 

     // Initialize the Out plane

-    prepareYUV420ImagePlane(planeOut, params->videoWidth,

-      params->videoHeight, (M4VIFI_UInt8 *)tempOutputBuffer);

+    prepareYUV420ImagePlane(planeOut, params->videoWidth, params->videoHeight,

+       (M4VIFI_UInt8 *)tempOutputBuffer, params->videoWidth, params->videoHeight);

 

     // The planeIn contains the YUV420 input data to postprocessing node

     // and planeOut will contain the YUV420 data with effect