hidl: camera: add guards for camera3_stream_t alignments

Change-Id: I3025180ce778270a9d4f039f60378c4e85207e96
diff --git a/hidl/camera/device/3.2/default/Android.bp b/hidl/camera/device/3.2/default/Android.bp
index 4acba8f..4657928 100644
--- a/hidl/camera/device/3.2/default/Android.bp
+++ b/hidl/camera/device/3.2/default/Android.bp
@@ -1,6 +1,9 @@
 cc_library_shared {
     name: "camera.device@3.2-impl.samsung",
-    defaults: ["hidl_defaults"],
+    defaults: [
+        "hidl_defaults",
+        "samsung_camera3_defaults",
+    ],
     proprietary: true,
     srcs: [
         "CameraDevice.cpp",
diff --git a/hidl/camera/device/3.3/default/Android.bp b/hidl/camera/device/3.3/default/Android.bp
index da88d34..130164e 100644
--- a/hidl/camera/device/3.3/default/Android.bp
+++ b/hidl/camera/device/3.3/default/Android.bp
@@ -1,6 +1,9 @@
 cc_library_shared {
     name: "camera.device@3.3-impl.samsung",
-    defaults: ["hidl_defaults"],
+    defaults: [
+        "hidl_defaults",
+        "samsung_camera3_defaults",
+    ],
     proprietary: true,
     srcs: [
         "CameraDevice.cpp",
diff --git a/hidl/camera/device/3.4/default/Android.bp b/hidl/camera/device/3.4/default/Android.bp
index 2549598..4c12545 100644
--- a/hidl/camera/device/3.4/default/Android.bp
+++ b/hidl/camera/device/3.4/default/Android.bp
@@ -16,7 +16,10 @@
 
 cc_library_shared {
     name: "camera.device@3.4-impl.samsung",
-    defaults: ["hidl_defaults"],
+    defaults: [
+        "hidl_defaults",
+        "samsung_camera3_defaults",
+    ],
     proprietary: true,
     vendor: true,
     srcs: [
diff --git a/hidl/camera/device/3.5/default/Android.bp b/hidl/camera/device/3.5/default/Android.bp
index 362babe..088252a 100644
--- a/hidl/camera/device/3.5/default/Android.bp
+++ b/hidl/camera/device/3.5/default/Android.bp
@@ -16,7 +16,10 @@
 
 cc_library_shared {
     name: "camera.device@3.5-impl.samsung",
-    defaults: ["hidl_defaults"],
+    defaults: [
+        "hidl_defaults",
+        "samsung_camera3_defaults",
+    ],
     proprietary: true,
     vendor: true,
     srcs: [
diff --git a/hidl/camera/libhardware_headers/Android.bp b/hidl/camera/libhardware_headers/Android.bp
index aed6e1a..545c7aa 100644
--- a/hidl/camera/libhardware_headers/Android.bp
+++ b/hidl/camera/libhardware_headers/Android.bp
@@ -1,3 +1,26 @@
+soong_config_module_type {
+    name: "samsung_camera3",
+    module_type: "cc_defaults",
+    config_namespace: "samsungCameraVars",
+    bool_variables: [
+        "needs_sec_reserved_field",
+        "usage_64bit",
+    ],
+    properties: ["cflags"],
+}
+
+samsung_camera3 {
+    name: "samsung_camera3_defaults",
+    soong_config_variables: {
+        needs_sec_reserved_field: {
+            cflags: ["-DCAMERA_NEEDS_SEC_RESERVED_FIELD"],
+        },
+        usage_64bit: {
+            cflags: ["-DCAMERA_64BIT_USAGE"],
+        },
+    },
+}
+
 cc_library_headers {
     name: "libhardware_headers.camera3_samsung",
     export_include_dirs: ["include"],
diff --git a/hidl/camera/libhardware_headers/include/hardware/camera3.h b/hidl/camera/libhardware_headers/include/hardware/camera3.h
index bb108f0..45a576f 100644
--- a/hidl/camera/libhardware_headers/include/hardware/camera3.h
+++ b/hidl/camera/libhardware_headers/include/hardware/camera3.h
@@ -1657,7 +1657,11 @@
      *   supported due to imcompatible buffer format, dataSpace, or other hardware
      *   limitations.
      */
+#ifdef CAMERA_64BIT_USAGE
     uint64_t usage;
+#else
+    uint32_t usage;
+#endif
 
     /**
      * The maximum number of buffers the HAL device may need to have dequeued at
@@ -1758,6 +1762,10 @@
     /* reserved for future use */
     void *reserved[6];
 
+#ifdef CAMERA_NEEDS_SEC_RESERVED_FIELD
+    char reserved_sec[0x28];
+#endif
+
 } camera3_stream_t;
 
 /**