diff --git a/hidl/camera/device/3.2/default/Android.bp b/hidl/camera/device/3.2/default/Android.bp index 4acba8f5..46579286 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 da88d342..130164e7 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 2549598a..4c125457 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 362babe1..088252a2 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 aed6e1a5..545c7aa0 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 bb108f02..45a576f9 100644 --- a/hidl/camera/libhardware_headers/include/hardware/camera3.h +++ b/hidl/camera/libhardware_headers/include/hardware/camera3.h @@ -1657,7 +1657,11 @@ typedef struct camera3_stream { * 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 @@ typedef struct camera3_stream { /* reserved for future use */ void *reserved[6]; +#ifdef CAMERA_NEEDS_SEC_RESERVED_FIELD + char reserved_sec[0x28]; +#endif + } camera3_stream_t; /**