Merge "Skip track if verification fails" into klp-dev am: ab2c5046ef am: f233415199 am: 87f1a3041d am: 222dca470e am: ff9e1b0303 am: 6d050827c3  -s ours am: 84b2e0717c  -s ours am: 0a78268055  -s ours am: 8d68455f69  -s ours am: 369ad623bc  -s ours am: 920df6ca00  -s ours am: e21ab964c1  -s ours am: 4566e87270  -s ours am: 6d719ca88c  -s ours am: d6fba171b7  -s ours am: 8158fccafd  -s ours am: 4c32e865d3  -s ours
am: 5b2a157387  -s ours

Change-Id: I41b87d21527c9497d7ae2ace3ff43aa6c000b96a
diff --git a/services/camera/libcameraservice/api1/client2/Parameters.cpp b/services/camera/libcameraservice/api1/client2/Parameters.cpp
index a305bc7..1addcdd 100644
--- a/services/camera/libcameraservice/api1/client2/Parameters.cpp
+++ b/services/camera/libcameraservice/api1/client2/Parameters.cpp
@@ -2200,6 +2200,14 @@
                 normalizedXToArray(meteringAreas[j].right);
             reqMeteringAreas[i + 3] =
                 normalizedYToArray(meteringAreas[j].bottom);
+            // Requested size may be zero by rounding error with/without zooming.
+            // The ae regions should be at least 1 if metering width/height is not zero.
+            if (reqMeteringAreas[i + 0] == reqMeteringAreas[i + 2]) {
+                reqMeteringAreas[i + 2]++;
+            }
+            if (reqMeteringAreas[i + 1] == reqMeteringAreas[i + 3]) {
+                reqMeteringAreas[i + 3]++;
+            }
         } else {
             reqMeteringAreas[i + 0] = 0;
             reqMeteringAreas[i + 1] = 0;