[{"id":2480,"web_url":"https://patchwork.libcamera.org/comment/2480/","msgid":"<20190819092540.pncqy7zvcw5fr6xg@uno.localdomain>","date":"2019-08-19T09:25:40","subject":"Re: [libcamera-devel] [PATCH 14/14] android: camera_device: Store\n\tstatic metadata in cache","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Sun, Aug 18, 2019 at 04:13:29AM +0300, Laurent Pinchart wrote:\n> The CameraDevice class has a mechanism to cache static metadata, but\n> doesn't use it. Fix it.\n\nWell, this is embarrassing.\nThanks for fixing.\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/android/camera_device.cpp | 42 +++++++++++++++++------------------\n>  1 file changed, 21 insertions(+), 21 deletions(-)\n>\n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index 9acfed694abc..c27175ac090d 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -131,14 +131,14 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t/* \\todo Use correct sizes */\n>  \t#define STATIC_ENTRY_CAP 256\n>  \t#define STATIC_DATA_CAP 6688\n> -\tcamera_metadata_t *staticMetadata =\n> -\t\tallocate_camera_metadata(STATIC_ENTRY_CAP, STATIC_DATA_CAP);\n> +\tstaticMetadata_ = allocate_camera_metadata(STATIC_ENTRY_CAP,\n> +\t\t\t\t\t\t   STATIC_DATA_CAP);\n>\n>  \t/* Sensor static metadata. */\n>  \tint32_t pixelArraySize[] = {\n>  \t\t2592, 1944,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\t\tANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,\n>  \t\t\t\t&pixelArraySize, 2);\n>  \tMETADATA_ASSERT(ret);\n> @@ -146,7 +146,7 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \tint32_t sensorSizes[] = {\n>  \t\t0, 0, 2560, 1920,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\t\tANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE,\n>  \t\t\t\t&sensorSizes, 4);\n>  \tMETADATA_ASSERT(ret);\n> @@ -154,13 +154,13 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \tint32_t sensitivityRange[] = {\n>  \t\t32, 2400,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\t\tANDROID_SENSOR_INFO_SENSITIVITY_RANGE,\n>  \t\t\t\t&sensitivityRange, 2);\n>  \tMETADATA_ASSERT(ret);\n>\n>  \tuint16_t filterArr = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\t\tANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT,\n>  \t\t\t\t&filterArr, 1);\n>  \tMETADATA_ASSERT(ret);\n> @@ -168,33 +168,33 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \tint64_t exposureTimeRange[] = {\n>  \t\t100000, 200000000,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\t\tANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE,\n>  \t\t\t\t&exposureTimeRange, 2);\n>  \tMETADATA_ASSERT(ret);\n>\n>  \tint32_t orientation = 0;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\t\tANDROID_SENSOR_ORIENTATION,\n>  \t\t\t\t&orientation, 1);\n>  \tMETADATA_ASSERT(ret);\n>\n>  \t/* Flash static metadata. */\n>  \tchar flashAvailable = ANDROID_FLASH_INFO_AVAILABLE_FALSE;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_FLASH_INFO_AVAILABLE,\n>  \t\t\t&flashAvailable, 1);\n>  \tMETADATA_ASSERT(ret);\n>\n>  \t/* Lens static metadata. */\n>  \tfloat fn = 2.53 / 100;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\t\tANDROID_LENS_INFO_AVAILABLE_APERTURES, &fn, 1);\n>  \tMETADATA_ASSERT(ret);\n>\n>  \t/* Control metadata. */\n>  \tchar controlMetadata = ANDROID_CONTROL_MODE_AUTO;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_CONTROL_AVAILABLE_MODES,\n>  \t\t\t&controlMetadata, 1);\n>  \tMETADATA_ASSERT(ret);\n> @@ -205,7 +205,7 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\tANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ,\n>  \t\tANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,\n>  \t\t\tavailableAntiBandingModes, 4);\n>  \tMETADATA_ASSERT(ret);\n> @@ -214,19 +214,19 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\tANDROID_CONTROL_AE_MODE_ON,\n>  \t\tANDROID_CONTROL_AE_MODE_OFF,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_CONTROL_AE_AVAILABLE_MODES,\n>  \t\t\taeAvailableModes, 2);\n>  \tMETADATA_ASSERT(ret);\n>\n>  \tcontrolMetadata = ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_CONTROL_AE_LOCK_AVAILABLE,\n>  \t\t\t&controlMetadata, 1);\n>  \tMETADATA_ASSERT(ret);\n>\n>  \tuint8_t awbLockAvailable = ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_CONTROL_AWB_LOCK_AVAILABLE,\n>  \t\t\t&awbLockAvailable, 1);\n>\n> @@ -236,7 +236,7 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\tANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888,\n>  \t\tANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_SCALER_AVAILABLE_FORMATS,\n>  \t\t\tavailableStreamFormats.data(),\n>  \t\t\tavailableStreamFormats.size());\n> @@ -250,7 +250,7 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\tANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED, 2560, 1920,\n>  \t\tANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,\n>  \t\t\tavailableStreamConfigurations.data(),\n>  \t\t\tavailableStreamConfigurations.size());\n> @@ -259,7 +259,7 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \tstd::vector<int64_t> availableStallDurations = {\n>  \t\tANDROID_SCALER_AVAILABLE_FORMATS_BLOB, 2560, 1920, 33333333,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_SCALER_AVAILABLE_STALL_DURATIONS,\n>  \t\t\tavailableStallDurations.data(),\n>  \t\t\tavailableStallDurations.size());\n> @@ -270,18 +270,18 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\tANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED, 2560, 1920, 33333333,\n>  \t\tANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888, 2560, 1920, 33333333,\n>  \t};\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,\n>  \t\t\tminFrameDurations.data(), minFrameDurations.size());\n>  \tMETADATA_ASSERT(ret);\n>\n>  \t/* Info static metadata. */\n>  \tuint8_t supportedHWLevel = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED;\n> -\tret = add_camera_metadata_entry(staticMetadata,\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n>  \t\t\tANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,\n>  \t\t\t&supportedHWLevel, 1);\n>\n> -\treturn staticMetadata;\n> +\treturn staticMetadata_;\n>  }\n>\n>  /*\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net\n\t[217.70.183.194])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8295660E38\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Aug 2019 11:24:12 +0200 (CEST)","from uno.localdomain (unknown [87.18.63.98])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 9B93140002;\n\tMon, 19 Aug 2019 09:24:11 +0000 (UTC)"],"X-Originating-IP":"87.18.63.98","Date":"Mon, 19 Aug 2019 11:25:40 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190819092540.pncqy7zvcw5fr6xg@uno.localdomain>","References":"<20190818011329.14499-1-laurent.pinchart@ideasonboard.com>\n\t<20190818011329.14499-15-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"ry4juim6bcprjzyr\"","Content-Disposition":"inline","In-Reply-To":"<20190818011329.14499-15-laurent.pinchart@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH 14/14] android: camera_device: Store\n\tstatic metadata in cache","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 19 Aug 2019 09:24:12 -0000"}}]