Merge "Readback tests from VtsHalGraphicsComposerV2_2TargetTest VTS 2.2"
diff --git a/camera/device/3.8/types.hal b/camera/device/3.8/types.hal
index 6daa0e1..843d050 100644
--- a/camera/device/3.8/types.hal
+++ b/camera/device/3.8/types.hal
@@ -35,8 +35,9 @@
 
     /**
      * Timestamp for the capture readout. This must be in the same time domain
-     * as v3_2.timestamp, and the value must be v3_2.timestamp + exposureTime
-     * for a rolling shutter sensor.
+     * as v3_2.timestamp, and for a rolling shutter sensor, the value must be
+     * v3_2.timestamp + exposureTime + t_crop_top where t_crop_top is the exposure time
+     * skew of the cropped lines on the top.
      */
     uint64_t readoutTimestamp;
 };
diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
index ff8cd49..77974fc 100644
--- a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
+++ b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
@@ -4796,15 +4796,24 @@
             ASSERT_EQ(testStream.id, inflightReq.resultOutputBuffers[0].streamId);
 
             // For camera device 3.8 or newer, shutterReadoutTimestamp must be
-            // available, and it must be shutterTimestamp + exposureTime.
+            // available, and it must be >= shutterTimestamp + exposureTime, and
+            // < shutterTimestamp + exposureTime + rollingShutterSkew / 2.
             if (deviceVersion >= CAMERA_DEVICE_API_VERSION_3_8) {
                 ASSERT_TRUE(inflightReq.shutterReadoutTimestampValid);
                 ASSERT_FALSE(inflightReq.collectedResult.isEmpty());
                 if (inflightReq.collectedResult.exists(ANDROID_SENSOR_EXPOSURE_TIME)) {
                     camera_metadata_entry_t exposureTimeResult = inflightReq.collectedResult.find(
                             ANDROID_SENSOR_EXPOSURE_TIME);
-                    ASSERT_EQ(inflightReq.shutterReadoutTimestamp - inflightReq.shutterTimestamp,
-                            exposureTimeResult.data.i64[0]);
+                    nsecs_t exposureToReadout =
+                            inflightReq.shutterReadoutTimestamp - inflightReq.shutterTimestamp;
+                    ASSERT_GE(exposureToReadout, exposureTimeResult.data.i64[0]);
+                    if (inflightReq.collectedResult.exists(ANDROID_SENSOR_ROLLING_SHUTTER_SKEW)) {
+                        camera_metadata_entry_t rollingShutterSkew =
+                                inflightReq.collectedResult.find(
+                                        ANDROID_SENSOR_ROLLING_SHUTTER_SKEW);
+                        ASSERT_LT(exposureToReadout, exposureTimeResult.data.i64[0] +
+                                                             rollingShutterSkew.data.i64[0] / 2);
+                    }
                 }
             }
 
diff --git a/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/ReadbackVts.cpp b/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/ReadbackVts.cpp
index e832cb7..b612309 100644
--- a/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/ReadbackVts.cpp
+++ b/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/ReadbackVts.cpp
@@ -274,7 +274,7 @@
 
 TestBufferLayer::TestBufferLayer(const std::shared_ptr<IComposerClient>& client,
                                  const ::android::sp<::android::GraphicBuffer>& graphicBuffer,
-                                 TestRenderEngine& renderEngine, int32_t display, uint32_t width,
+                                 TestRenderEngine& renderEngine, int64_t display, uint32_t width,
                                  uint32_t height, common::PixelFormat format,
                                  Composition composition)
     : TestLayer{client, display}, mRenderEngine(renderEngine) {
diff --git a/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/include/ReadbackVts.h b/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/include/ReadbackVts.h
index 58989d8..85b4fdc 100644
--- a/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/include/ReadbackVts.h
+++ b/graphics/composer/aidl/android/hardware/graphics/composer3/vts/functional/composer-vts/include/ReadbackVts.h
@@ -53,7 +53,7 @@
 
 class TestLayer {
   public:
-    TestLayer(const std::shared_ptr<IComposerClient>& client, int32_t display)
+    TestLayer(const std::shared_ptr<IComposerClient>& client, int64_t display)
         : mComposerClient(client) {
         client->createLayer(display, kBufferSlotCount, &mLayer);
     }
@@ -100,7 +100,7 @@
 
 class TestColorLayer : public TestLayer {
   public:
-    TestColorLayer(const std::shared_ptr<IComposerClient>& client, int32_t display)
+    TestColorLayer(const std::shared_ptr<IComposerClient>& client, int64_t display)
         : TestLayer{client, display} {}
 
     void write(const std::shared_ptr<CommandWriterBase>& writer) override;
@@ -117,7 +117,7 @@
   public:
     TestBufferLayer(const std::shared_ptr<IComposerClient>& client,
                     const ::android::sp<::android::GraphicBuffer>& graphicBuffer,
-                    TestRenderEngine& renderEngine, int32_t display, uint32_t width,
+                    TestRenderEngine& renderEngine, int64_t display, uint32_t width,
                     uint32_t height, common::PixelFormat format,
                     Composition composition = Composition::DEVICE);
 
diff --git a/media/omx/1.0/vts/OWNERS b/media/omx/1.0/vts/OWNERS
index e0e0dd1..9e390c2 100644
--- a/media/omx/1.0/vts/OWNERS
+++ b/media/omx/1.0/vts/OWNERS
@@ -1,7 +1,5 @@
+# Bug component: 25690
 # Media team
-pawin@google.com
+taklee@google.com
+wonsik@google.com
 lajos@google.com
-
-# VTS team
-yim@google.com
-zhuoyao@google.com
\ No newline at end of file
diff --git a/neuralnetworks/aidl/vts/functional/Android.bp b/neuralnetworks/aidl/vts/functional/Android.bp
index a102fe0..1ed15b8 100644
--- a/neuralnetworks/aidl/vts/functional/Android.bp
+++ b/neuralnetworks/aidl/vts/functional/Android.bp
@@ -60,6 +60,7 @@
         "libsync",
     ],
     whole_static_libs: [
+        "neuralnetworks_generated_AIDL_V3_example",
         "neuralnetworks_generated_AIDL_V2_example",
         "neuralnetworks_generated_V1_0_example",
         "neuralnetworks_generated_V1_1_example",