hwc: video: Create crop and position structs only once.

Create crop and position structs only once.
Fix bug where x and y were not updated.

Change-Id: I7c6a873ba207997baa302b8999bdaf34cc938dba
diff --git a/libhwcomposer/hwc_video.cpp b/libhwcomposer/hwc_video.cpp
index 38ac695..bedd9e9 100644
--- a/libhwcomposer/hwc_video.cpp
+++ b/libhwcomposer/hwc_video.cpp
@@ -130,17 +130,7 @@
     ov.setSource(pargs, ovutils::OV_PIPE0);
 
     hwc_rect_t sourceCrop = layer->sourceCrop;
-    // x,y,w,h
-    ovutils::Dim dcrop(sourceCrop.left, sourceCrop.top,
-            sourceCrop.right - sourceCrop.left,
-            sourceCrop.bottom - sourceCrop.top);
-
-    ovutils::Dim dpos;
     hwc_rect_t displayFrame = layer->displayFrame;
-    dpos.x = displayFrame.left;
-    dpos.y = displayFrame.top;
-    dpos.w = (displayFrame.right - displayFrame.left);
-    dpos.h = (displayFrame.bottom - displayFrame.top);
 
     //Calculate the rect for primary based on whether the supplied position
     //is within or outside bounds.
@@ -153,19 +143,13 @@
             displayFrame.top < 0 ||
             displayFrame.right > fbWidth ||
             displayFrame.bottom > fbHeight) {
-
         calculate_crop_rects(sourceCrop, displayFrame, fbWidth, fbHeight);
-
-        //Update calculated width and height
-        dcrop.w = sourceCrop.right - sourceCrop.left;
-        dcrop.h = sourceCrop.bottom - sourceCrop.top;
-
-        dpos.x = displayFrame.left;
-        dpos.y = displayFrame.top;
-        dpos.w = displayFrame.right - displayFrame.left;
-        dpos.h = displayFrame.bottom - displayFrame.top;
     }
 
+    // source crop x,y,w,h
+    ovutils::Dim dcrop(sourceCrop.left, sourceCrop.top,
+            sourceCrop.right - sourceCrop.left,
+            sourceCrop.bottom - sourceCrop.top);
     //Only for Primary
     ov.setCrop(dcrop, ovutils::OV_PIPE0);
 
@@ -174,6 +158,11 @@
             static_cast<ovutils::eTransform>(transform);
     ov.setTransform(orient, ovutils::OV_PIPE0);
 
+    // position x,y,w,h
+    ovutils::Dim dpos(displayFrame.left,
+            displayFrame.top,
+            displayFrame.right - displayFrame.left,
+            displayFrame.bottom - displayFrame.top);
     ov.setPosition(dpos, ovutils::OV_PIPE0);
 
     if (!ov.commit(ovutils::OV_PIPE0)) {