Merge \"CameraITS: Wait for AE converge to verify EV results\" into nyc-dev
am: 4a264e7c64

Change-Id: I5f3b59154d97e0214076fdc69302d002c66b27c6
diff --git a/apps/CameraITS/tests/scene1/test_ev_compensation_advanced.py b/apps/CameraITS/tests/scene1/test_ev_compensation_advanced.py
index 1246a11..c14f5a9 100644
--- a/apps/CameraITS/tests/scene1/test_ev_compensation_advanced.py
+++ b/apps/CameraITS/tests/scene1/test_ev_compensation_advanced.py
@@ -22,9 +22,14 @@
 import matplotlib.pyplot
 import numpy
 
+#AE must converge within this number of auto requests for EV
+THREASH_CONVERGE_FOR_EV = 8
+
 def main():
     """Tests that EV compensation is applied.
     """
+    LOCKED = 3
+
     NAME = os.path.basename(__file__).split(".")[0]
 
     MAX_LUMA_DELTA_THRESH = 0.05
@@ -64,10 +69,15 @@
             req["android.tonemap.curveRed"] = [0.0,0.0, 1.0,1.0]
             req["android.tonemap.curveGreen"] = [0.0,0.0, 1.0,1.0]
             req["android.tonemap.curveBlue"] = [0.0,0.0, 1.0,1.0]
-            cap = cam.do_capture(req)
-            y = its.image.convert_capture_to_planes(cap)[0]
-            tile = its.image.get_image_patch(y, 0.45,0.45,0.1,0.1)
-            lumas.append(its.image.compute_image_means(tile)[0])
+            caps = cam.do_capture([req]*THREASH_CONVERGE_FOR_EV)
+
+            for cap in caps:
+                if (cap['metadata']['android.control.aeState'] == LOCKED):
+                    y = its.image.convert_capture_to_planes(cap)[0]
+                    tile = its.image.get_image_patch(y, 0.45,0.45,0.1,0.1)
+                    lumas.append(its.image.compute_image_means(tile)[0])
+                    break
+            assert(cap['metadata']['android.control.aeState'] == LOCKED)
 
         print "ev_step_size_in_stops", ev_per_step
         shift_mid = ev_shifts[imid]
diff --git a/apps/CameraITS/tests/scene1/test_ev_compensation_basic.py b/apps/CameraITS/tests/scene1/test_ev_compensation_basic.py
index d67567d..49ccbcf 100644
--- a/apps/CameraITS/tests/scene1/test_ev_compensation_basic.py
+++ b/apps/CameraITS/tests/scene1/test_ev_compensation_basic.py
@@ -22,9 +22,14 @@
 import matplotlib.pyplot
 import numpy
 
+#AE must converge within this number of auto requests for EV
+THREASH_CONVERGE_FOR_EV = 8
+
 def main():
     """Tests that EV compensation is applied.
     """
+    LOCKED = 3
+
     NAME = os.path.basename(__file__).split(".")[0]
 
     with its.device.ItsSession() as cam:
@@ -49,10 +54,14 @@
             req = its.objects.auto_capture_request()
             req['android.control.aeExposureCompensation'] = ev
             req["android.control.aeLock"] = True
-            cap = cam.do_capture(req)
-            y = its.image.convert_capture_to_planes(cap)[0]
-            tile = its.image.get_image_patch(y, 0.45,0.45,0.1,0.1)
-            lumas.append(its.image.compute_image_means(tile)[0])
+            caps = cam.do_capture([req]*THREASH_CONVERGE_FOR_EV)
+            for cap in caps:
+                if (cap['metadata']['android.control.aeState'] == LOCKED):
+                    y = its.image.convert_capture_to_planes(cap)[0]
+                    tile = its.image.get_image_patch(y, 0.45,0.45,0.1,0.1)
+                    lumas.append(its.image.compute_image_means(tile)[0])
+                    break
+            assert(cap['metadata']['android.control.aeState'] == LOCKED)
 
         pylab.plot(evs, lumas, 'r')
         matplotlib.pyplot.savefig("%s_plot_means.png" % (NAME))