From 1ac37e37ce7766901f0fc889fc3c43ffdc1296b5 Mon Sep 17 00:00:00 2001 From: Romain Hunault Date: Wed, 15 May 2019 15:53:39 +0000 Subject: [PATCH 1/3] interfaces: Setup CI to update from upstream Change-Id: I7f9e3263d900b1af0f323136b298bdb09f218407 --- .gitlab-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000..f01e777905 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,7 @@ +stages: + - update-from-upstream + +include: + - project: 'e/templates' + ref: master + file: '/gitlab-ci/.gitlab-ci-import-updates-from-upstream.yml' -- GitLab From 40ecac3231c6feccca70eb049b8dcc63876d456e Mon Sep 17 00:00:00 2001 From: Abhijit Trivedi Date: Wed, 20 Jun 2018 15:54:48 -0700 Subject: [PATCH 2/3] frameworks: Update HIDL overrideFormat from HAL --HAL requires 64 bit usage flags to support more feature --Re-used one of the reserved locations to read 64bit usage flags and override format CRs-fixed: 2264577 Change-Id: I9a4cbb80b1c2d82ec4af3941f0d98b67ecfd59ef --- .../3.2/default/CameraDeviceSession.cpp | 4 ++-- camera/device/3.2/default/convert.cpp | 19 +++++++++++++++++++ camera/device/3.3/default/convert.cpp | 16 ++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp index 769991c5fa..896c35843a 100644 --- a/camera/device/3.2/default/CameraDeviceSession.cpp +++ b/camera/device/3.2/default/CameraDeviceSession.cpp @@ -926,12 +926,12 @@ bool CameraDeviceSession::preProcessConfigurationLocked( mStreamMap[id].data_space); mCirculatingBuffers.emplace(stream.mId, CirculatingBuffers{}); } else { - // width/height/format must not change, but usage/rotation might need to change + // width/height must not change, but usage/rotation might need to change + // format might change and get updated with overrideFormat if (mStreamMap[id].stream_type != (int) requestedConfiguration.streams[i].streamType || mStreamMap[id].width != requestedConfiguration.streams[i].width || mStreamMap[id].height != requestedConfiguration.streams[i].height || - mStreamMap[id].format != (int) requestedConfiguration.streams[i].format || mStreamMap[id].data_space != mapToLegacyDataspace( static_cast ( requestedConfiguration.streams[i].dataSpace))) { diff --git a/camera/device/3.2/default/convert.cpp b/camera/device/3.2/default/convert.cpp index 207560783f..cb64f396f2 100644 --- a/camera/device/3.2/default/convert.cpp +++ b/camera/device/3.2/default/convert.cpp @@ -74,6 +74,8 @@ void convertFromHidl(const Stream &src, Camera3Stream* dst) { dst->data_space = (android_dataspace_t) src.dataSpace; dst->rotation = (int) src.rotation; dst->usage = (uint32_t) src.usage; + dst->reserved[0] = NULL; + dst->reserved[1] = NULL; // Fields to be filled by HAL (max_buffers, priv) are initialized to 0 dst->max_buffers = 0; dst->priv = 0; @@ -96,6 +98,23 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) { ALOGW("%s: Stream type %d is not currently supported!", __FUNCTION__, src->stream_type); } + + HalStream* halStream = NULL; + if (src->reserved[0] != NULL) { + halStream = (HalStream*)(src->reserved[0]); + } else if (src->reserved[1] != NULL) { + halStream = (HalStream*)(src->reserved[1]); + } + + // Check if overrideFormat is set and honor it + if (halStream != NULL) { + dst->overrideFormat = (PixelFormat) halStream->overrideFormat; + if (src->stream_type == CAMERA3_STREAM_OUTPUT) { + dst->producerUsage = (BufferUsageFlags)halStream->producerUsage; + } else if (src->stream_type == CAMERA3_STREAM_INPUT) { + dst->consumerUsage = (BufferUsageFlags)halStream->consumerUsage; + } + } } void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) { diff --git a/camera/device/3.3/default/convert.cpp b/camera/device/3.3/default/convert.cpp index dae190b03c..ac17d837d7 100644 --- a/camera/device/3.3/default/convert.cpp +++ b/camera/device/3.3/default/convert.cpp @@ -47,6 +47,22 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) { ALOGW("%s: Stream type %d is not currently supported!", __FUNCTION__, src->stream_type); } + + HalStream* halStream = NULL; + if (src->reserved[0] != NULL) { + halStream = (HalStream*)(src->reserved[0]); + } else if (src->reserved[1] != NULL) { + halStream = (HalStream*)(src->reserved[1]); + } + + if (halStream != NULL) { + dst->v3_2.overrideFormat = (PixelFormat) halStream->v3_2.overrideFormat; + if (src->stream_type == CAMERA3_STREAM_OUTPUT) { + dst->v3_2.producerUsage = (BufferUsageFlags)halStream->v3_2.producerUsage; + } else if (src->stream_type == CAMERA3_STREAM_INPUT) { + dst->v3_2.consumerUsage = (BufferUsageFlags)halStream->v3_2.consumerUsage; + } + } } void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) { -- GitLab From afb82cd66360d9e76c7536dda4cb3ef6580646d2 Mon Sep 17 00:00:00 2001 From: Rohit Sekhar Date: Wed, 20 Sep 2023 17:46:13 +0530 Subject: [PATCH 3/3] camera: Make overrideFormat from reserved fields opt-in Change-Id: Ic0025ae5a4d359074e25692e1913eb98f47bbcec --- camera/device/3.2/default/Android.bp | 5 ++++- camera/device/3.2/default/CameraDeviceSession.cpp | 5 ++++- camera/device/3.2/default/convert.cpp | 4 ++++ camera/device/3.3/default/Android.bp | 5 ++++- camera/device/3.3/default/convert.cpp | 2 ++ 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/camera/device/3.2/default/Android.bp b/camera/device/3.2/default/Android.bp index a1962915ff..efcfec6406 100644 --- a/camera/device/3.2/default/Android.bp +++ b/camera/device/3.2/default/Android.bp @@ -9,7 +9,10 @@ package { cc_library_shared { name: "camera.device@3.2-impl", - defaults: ["hidl_defaults"], + defaults: [ + "hidl_defaults", + "camera_override_format_from_reserved_defaults", + ], proprietary: true, srcs: [ "CameraDevice.cpp", diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp index 896c35843a..6e5c714251 100644 --- a/camera/device/3.2/default/CameraDeviceSession.cpp +++ b/camera/device/3.2/default/CameraDeviceSession.cpp @@ -927,11 +927,14 @@ bool CameraDeviceSession::preProcessConfigurationLocked( mCirculatingBuffers.emplace(stream.mId, CirculatingBuffers{}); } else { // width/height must not change, but usage/rotation might need to change - // format might change and get updated with overrideFormat + // format might change and get updated with TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED if (mStreamMap[id].stream_type != (int) requestedConfiguration.streams[i].streamType || mStreamMap[id].width != requestedConfiguration.streams[i].width || mStreamMap[id].height != requestedConfiguration.streams[i].height || +#ifndef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED + mStreamMap[id].format != (int) requestedConfiguration.streams[i].format || +#endif mStreamMap[id].data_space != mapToLegacyDataspace( static_cast ( requestedConfiguration.streams[i].dataSpace))) { diff --git a/camera/device/3.2/default/convert.cpp b/camera/device/3.2/default/convert.cpp index cb64f396f2..fdbc204556 100644 --- a/camera/device/3.2/default/convert.cpp +++ b/camera/device/3.2/default/convert.cpp @@ -74,8 +74,10 @@ void convertFromHidl(const Stream &src, Camera3Stream* dst) { dst->data_space = (android_dataspace_t) src.dataSpace; dst->rotation = (int) src.rotation; dst->usage = (uint32_t) src.usage; +#ifdef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED dst->reserved[0] = NULL; dst->reserved[1] = NULL; +#endif // Fields to be filled by HAL (max_buffers, priv) are initialized to 0 dst->max_buffers = 0; dst->priv = 0; @@ -99,6 +101,7 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) { __FUNCTION__, src->stream_type); } +#ifdef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED HalStream* halStream = NULL; if (src->reserved[0] != NULL) { halStream = (HalStream*)(src->reserved[0]); @@ -115,6 +118,7 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) { dst->consumerUsage = (BufferUsageFlags)halStream->consumerUsage; } } +#endif } void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) { diff --git a/camera/device/3.3/default/Android.bp b/camera/device/3.3/default/Android.bp index cc0dd39db5..5620102d7e 100644 --- a/camera/device/3.3/default/Android.bp +++ b/camera/device/3.3/default/Android.bp @@ -9,7 +9,10 @@ package { cc_library_shared { name: "camera.device@3.3-impl", - defaults: ["hidl_defaults"], + defaults: [ + "hidl_defaults", + "camera_override_format_from_reserved_defaults", + ], proprietary: true, srcs: [ "CameraDevice.cpp", diff --git a/camera/device/3.3/default/convert.cpp b/camera/device/3.3/default/convert.cpp index ac17d837d7..9b6caf0360 100644 --- a/camera/device/3.3/default/convert.cpp +++ b/camera/device/3.3/default/convert.cpp @@ -48,6 +48,7 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) { __FUNCTION__, src->stream_type); } +#ifdef TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED HalStream* halStream = NULL; if (src->reserved[0] != NULL) { halStream = (HalStream*)(src->reserved[0]); @@ -63,6 +64,7 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) { dst->v3_2.consumerUsage = (BufferUsageFlags)halStream->v3_2.consumerUsage; } } +#endif } void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) { -- GitLab