{"id":1851,"url":"https://patchwork.libcamera.org/api/patches/1851/?format=json","web_url":"https://patchwork.libcamera.org/patch/1851/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190818011329.14499-15-laurent.pinchart@ideasonboard.com>","date":"2019-08-18T01:13:29","name":"[libcamera-devel,14/14] android: camera_device: Store static metadata in cache","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"4934ea6d390968ff72f2297c26561f15d5dde791","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/1851/mbox/","series":[{"id":464,"url":"https://patchwork.libcamera.org/api/series/464/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=464","date":"2019-08-18T01:13:15","name":"Assorted fixes for Android camera HAL","version":1,"mbox":"https://patchwork.libcamera.org/series/464/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/1851/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/1851/checks/","tags":{},"headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E38E161929\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 18 Aug 2019 03:13:45 +0200 (CEST)","from pendragon.bb.dnainternet.fi\n\t(dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi\n\t[IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7CB6051C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 18 Aug 2019 03:13:45 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1566090825;\n\tbh=rktlRI8NhJhkP4pGa7foujYjoTlOhpZQf+vZ+qjb5jM=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=FQW7g58Q172ZSBGyIW0Asm2yue1TpGmk1KPZYDQIzLxETukm56xuBhgUXO4Zi/1uM\n\tXqJQnawredeS6Azb1eeUuKzGRJr3ro1hBNzHSuUEyub7fgXh4JRKoSckVn61VqFxCe\n\tV2tZuEdOo4x+7yF/gPj3omoJnVXvG040Bf95oFww=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Sun, 18 Aug 2019 04:13:29 +0300","Message-Id":"<20190818011329.14499-15-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.21.0","In-Reply-To":"<20190818011329.14499-1-laurent.pinchart@ideasonboard.com>","References":"<20190818011329.14499-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[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":"Sun, 18 Aug 2019 01:13:46 -0000"},"content":"The CameraDevice class has a mechanism to cache static metadata, but\ndoesn't use it. Fix it.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/android/camera_device.cpp | 42 +++++++++++++++++------------------\n 1 file changed, 21 insertions(+), 21 deletions(-)","diff":"diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\nindex 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","prefixes":["libcamera-devel","14/14"]}