camera3: Add physical camera id field in capture result

- Add an array of physical camera ids and metadata when physical
cameras are requested within a logical multi-camera.
- Physical camera ids and metadata are only necessary for the final
capture_results, not the partial result.
- Physical camera ids and metadata must not be populated if no physical
camera is requested.

Test: Compile
Bug: 64691172
Change-Id: I78b20fe3d0c6462abf95b8fe7e3b4c66b3acefdf
diff --git a/include/hardware/camera3.h b/include/hardware/camera3.h
index ad08883..a58b8b4 100644
--- a/include/hardware/camera3.h
+++ b/include/hardware/camera3.h
@@ -2498,6 +2498,37 @@
       */
      uint32_t partial_result;
 
+     /**
+      * >= CAMERA_DEVICE_API_VERSION_3_5:
+      *
+      * Specifies the number of physical camera metadata this capture result
+      * contains. It must be equal to the number of physical cameras being
+      * requested from.
+      *
+      * If the current camera device is not a logical multi-camera, or the
+      * corresponding capture_request doesn't request on any physical camera,
+      * this field must be 0.
+      */
+     uint32_t num_physcam_metadata;
+
+     /**
+      * >= CAMERA_DEVICE_API_VERSION_3_5:
+      *
+      * An array of strings containing the physical camera ids for the returned
+      * physical camera metadata. The length of the array is
+      * num_physcam_metadata.
+      */
+     const char **physcam_ids;
+
+     /**
+      * >= CAMERA_DEVICE_API_VERSION_3_5:
+      *
+      * The array of physical camera metadata for the physical cameras being
+      * requested upon. This array should have a 1-to-1 mapping with the
+      * physcam_ids. The length of the array is num_physcam_metadata.
+      */
+     const camera_metadata_t **physcam_metadata;
+
 } camera3_capture_result_t;
 
 /**********************************************************************