[{"id":2565,"web_url":"https://patchwork.libcamera.org/comment/2565/","msgid":"<20190830124825.GP8479@bigcity.dyn.berto.se>","date":"2019-08-30T12:48:25","subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: camera_device: Report\n\tavailable keys","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nThanks for your patch.\n\nOn 2019-08-29 18:53:10 +0200, Jacopo Mondi wrote:\n> Report the list of available static metadata tags (characteristicKeys),\n> of supported controls (requestKeys) and produced metadata (resultKeys)\n> in the static metadata pack.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\nSame question as for 2/4 regarding allocate_camera_metadata(). Otherwise \nit looks good.\n\n> ---\n>  src/android/camera_device.cpp | 101 +++++++++++++++++++++++++++++++++-\n>  1 file changed, 99 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index bc8ffed92c61..0163e8c4e39a 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -130,9 +130,9 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \n>  \t/*\n>  \t * \\todo Keep this in sync with the actual number of entries.\n> -\t * Currently: 46 entries, 390 bytes\n> +\t * Currently: 49 entries, 674 bytes\n>  \t */\n> -\tstaticMetadata_ = allocate_camera_metadata(50, 500);\n> +\tstaticMetadata_ = allocate_camera_metadata(50, 700);\n>  \n>  \t/* Color correction static metadata. */\n>  \tstd::vector<uint8_t> aberrationModes = {\n> @@ -505,6 +505,103 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\t\tavailableCapabilities.size());\n>  \tMETADATA_ASSERT(ret);\n>  \n> +\tstd::vector<int32_t> availableCharacteristicsKeys = {\n> +\t\tANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES,\n> +\t\tANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,\n> +\t\tANDROID_CONTROL_AE_AVAILABLE_MODES,\n> +\t\tANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,\n> +\t\tANDROID_CONTROL_AE_COMPENSATION_RANGE,\n> +\t\tANDROID_CONTROL_AE_COMPENSATION_STEP,\n> +\t\tANDROID_CONTROL_AF_AVAILABLE_MODES,\n> +\t\tANDROID_CONTROL_AVAILABLE_EFFECTS,\n> +\t\tANDROID_CONTROL_AVAILABLE_SCENE_MODES,\n> +\t\tANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,\n> +\t\tANDROID_CONTROL_AWB_AVAILABLE_MODES,\n> +\t\tANDROID_CONTROL_MAX_REGIONS,\n> +\t\tANDROID_CONTROL_SCENE_MODE_OVERRIDES,\n> +\t\tANDROID_CONTROL_AE_LOCK_AVAILABLE,\n> +\t\tANDROID_CONTROL_AWB_LOCK_AVAILABLE,\n> +\t\tANDROID_CONTROL_AVAILABLE_MODES,\n> +\t\tANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,\n> +\t\tANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,\n> +\t\tANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE,\n> +\t\tANDROID_SENSOR_INFO_SENSITIVITY_RANGE,\n> +\t\tANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT,\n> +\t\tANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE,\n> +\t\tANDROID_SENSOR_ORIENTATION,\n> +\t\tANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES,\n> +\t\tANDROID_SENSOR_INFO_PHYSICAL_SIZE,\n> +\t\tANDROID_SENSOR_INFO_TIMESTAMP_SOURCE,\n> +\t\tANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES,\n> +\t\tANDROID_STATISTICS_INFO_MAX_FACE_COUNT,\n> +\t\tANDROID_SYNC_MAX_LATENCY,\n> +\t\tANDROID_FLASH_INFO_AVAILABLE,\n> +\t\tANDROID_LENS_INFO_AVAILABLE_APERTURES,\n> +\t\tANDROID_LENS_FACING,\n> +\t\tANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS,\n> +\t\tANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,\n> +\t\tANDROID_LENS_INFO_HYPERFOCAL_DISTANCE,\n> +\t\tANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,\n> +\t\tANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES,\n> +\t\tANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,\n> +\t\tANDROID_SCALER_AVAILABLE_FORMATS,\n> +\t\tANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,\n> +\t\tANDROID_SCALER_AVAILABLE_STALL_DURATIONS,\n> +\t\tANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,\n> +\t\tANDROID_SCALER_CROPPING_TYPE,\n> +\t\tANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,\n> +\t\tANDROID_REQUEST_PARTIAL_RESULT_COUNT,\n> +\t\tANDROID_REQUEST_PIPELINE_MAX_DEPTH,\n> +\t\tANDROID_REQUEST_AVAILABLE_CAPABILITIES,\n> +\t};\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n> +\t\t\tANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS,\n> +\t\t\tavailableCharacteristicsKeys.data(),\n> +\t\t\tavailableCharacteristicsKeys.size());\n> +\tMETADATA_ASSERT(ret);\n> +\n> +\tstd::vector<int32_t> availableRequestKeys = {\n> +\t\tANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> +\t\tANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n> +\t\tANDROID_CONTROL_AE_MODE,\n> +\t\tANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,\n> +\t\tANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,\n> +\t\tANDROID_CONTROL_AE_LOCK,\n> +\t\tANDROID_CONTROL_AF_TRIGGER,\n> +\t\tANDROID_CONTROL_AWB_MODE,\n> +\t\tANDROID_CONTROL_AWB_LOCK,\n> +\t\tANDROID_FLASH_MODE,\n> +\t\tANDROID_STATISTICS_FACE_DETECT_MODE,\n> +\t\tANDROID_NOISE_REDUCTION_MODE,\n> +\t\tANDROID_COLOR_CORRECTION_ABERRATION_MODE,\n> +\t\tANDROID_CONTROL_CAPTURE_INTENT,\n> +\t};\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n> +\t\t\tANDROID_REQUEST_AVAILABLE_REQUEST_KEYS,\n> +\t\t\tavailableRequestKeys.data(),\n> +\t\t\tavailableRequestKeys.size());\n> +\tMETADATA_ASSERT(ret);\n> +\n> +\tstd::vector<int32_t> availableResultKeys = {\n> +\t\tANDROID_CONTROL_AE_STATE,\n> +\t\tANDROID_CONTROL_AE_LOCK,\n> +\t\tANDROID_CONTROL_AF_STATE,\n> +\t\tANDROID_CONTROL_AWB_STATE,\n> +\t\tANDROID_CONTROL_AWB_LOCK,\n> +\t\tANDROID_LENS_STATE,\n> +\t\tANDROID_SCALER_CROP_REGION,\n> +\t\tANDROID_SENSOR_TIMESTAMP,\n> +\t\tANDROID_SENSOR_ROLLING_SHUTTER_SKEW,\n> +\t\tANDROID_SENSOR_EXPOSURE_TIME,\n> +\t\tANDROID_STATISTICS_LENS_SHADING_MAP_MODE,\n> +\t\tANDROID_STATISTICS_SCENE_FLICKER,\n> +\t};\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n> +\t\t\tANDROID_REQUEST_AVAILABLE_RESULT_KEYS,\n> +\t\t\tavailableResultKeys.data(),\n> +\t\t\tavailableResultKeys.size());\n> +\tMETADATA_ASSERT(ret);\n> +\n>  \treturn staticMetadata_;\n>  }\n>  \n> -- \n> 2.23.0\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x144.google.com (mail-lf1-x144.google.com\n\t[IPv6:2a00:1450:4864:20::144])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9F29B60BCF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Aug 2019 14:48:27 +0200 (CEST)","by mail-lf1-x144.google.com with SMTP id h27so5291111lfp.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Aug 2019 05:48:27 -0700 (PDT)","from localhost (h-177-236.A463.priv.bahnhof.se. [217.31.177.236])\n\tby smtp.gmail.com with ESMTPSA id\n\tz2sm910206lfh.97.2019.08.30.05.48.25\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 30 Aug 2019 05:48:26 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=bZdV+xwC1DI5FTN74vrkQvsyR5qUuNN8ODrmcG7UuMk=;\n\tb=Ra/BWi/fHACynQg0o3UX4sMIcLJki3eOH8zYw0k4LavWc5BaT8Ne8JiB+TdC8zrYyS\n\tItxx8p0LVt5//UgvqO4OHykbTZf8HSwNJfg91djTWuA0oFBoiHHlnQ/wX2l5Tud9V0KU\n\tPr2jrOY/Gc2Z6E4uIQ+axrjyRvQ8wfYKfPJA6hXMfQLTecidq496MZfcNwO9hNk5xfaW\n\tA91ep2xdseXwmwwteKRL9sjVAoosYZphgus/msf+RmXIEqPhK+D/Yg/pqh06wfQ21ejo\n\tMG0yj57liiK3mumuSGbG0T9xCbB7EMBjUwPlAHLuxU03kxDiNxZETHYdIf1OGaSVtFaF\n\tXA0g==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=bZdV+xwC1DI5FTN74vrkQvsyR5qUuNN8ODrmcG7UuMk=;\n\tb=SbXnWlP+jS/1HWFA3a7qn+/0LaKX6l1CAoZIEH3vsJZnynrxG8vNsDrTb+1MEZWqar\n\tLLbmCKfJD4pE2mXCSMD33OrH4MhzNP4lgiMWmYoxh4uTcAnTKbAhBzsII6C2sZe+l0bt\n\tUbP2+IhQeFuLu0Ydqg5XM/zyWbayTTB6ywCXztgU+3ReoGFDZetn3k9yIqRNdbRQUu7Y\n\tmza8Shks2gQFW0ZbzVmyfcCLgWOlFMNYOycKe/Yr2W/dkGtN30nCQf0sMZiw+Vd/Jqnl\n\t38QomSzU67Fp8OJ4lEc9RGoI6gy7AIHuTlNe1NLKIVHwl/32BVKo/4WV1KdcAdz1cU++\n\t9X8A==","X-Gm-Message-State":"APjAAAV1PcYHDLojPoiGnlbKARSFSwBs2M9u3390xCK3AB8dSiuELQEQ\n\tsL0oM0OAkX6DTyTWM8oDlyH1jpf4o6w=","X-Google-Smtp-Source":"APXvYqzRQ7bgQkzZQ5z9YvQ86JBXppUHvl3EdrkDuv7xkxHhiBb3WYlxK/Ylsha5IBFRJnAKgHSBZg==","X-Received":"by 2002:a19:4b0d:: with SMTP id\n\ty13mr9508643lfa.128.1567169307153; \n\tFri, 30 Aug 2019 05:48:27 -0700 (PDT)","Date":"Fri, 30 Aug 2019 14:48:25 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org, jcliang@google.com, wtlee@google.com","Message-ID":"<20190830124825.GP8479@bigcity.dyn.berto.se>","References":"<20190829165311.29196-1-jacopo@jmondi.org>\n\t<20190829165311.29196-4-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190829165311.29196-4-jacopo@jmondi.org>","User-Agent":"Mutt/1.12.1 (2019-06-15)","Subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: camera_device: Report\n\tavailable keys","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":"Fri, 30 Aug 2019 12:48:27 -0000"}},{"id":2580,"web_url":"https://patchwork.libcamera.org/comment/2580/","msgid":"<20190903203046.GI4788@pendragon.ideasonboard.com>","date":"2019-09-03T20:30:46","subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: camera_device: Report\n\tavailable keys","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nThank you for the patch.\n\nOn Thu, Aug 29, 2019 at 06:53:10PM +0200, Jacopo Mondi wrote:\n> Report the list of available static metadata tags (characteristicKeys),\n> of supported controls (requestKeys) and produced metadata (resultKeys)\n> in the static metadata pack.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\nHave you tested this with valgrind (running the cros-camera service\nunder valgrind manually) ?\n\n> ---\n>  src/android/camera_device.cpp | 101 +++++++++++++++++++++++++++++++++-\n>  1 file changed, 99 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index bc8ffed92c61..0163e8c4e39a 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -130,9 +130,9 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \n>  \t/*\n>  \t * \\todo Keep this in sync with the actual number of entries.\n> -\t * Currently: 46 entries, 390 bytes\n> +\t * Currently: 49 entries, 674 bytes\n>  \t */\n> -\tstaticMetadata_ = allocate_camera_metadata(50, 500);\n> +\tstaticMetadata_ = allocate_camera_metadata(50, 700);\n>  \n>  \t/* Color correction static metadata. */\n>  \tstd::vector<uint8_t> aberrationModes = {\n> @@ -505,6 +505,103 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n>  \t\t\tavailableCapabilities.size());\n>  \tMETADATA_ASSERT(ret);\n>  \n> +\tstd::vector<int32_t> availableCharacteristicsKeys = {\n> +\t\tANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES,\n> +\t\tANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,\n> +\t\tANDROID_CONTROL_AE_AVAILABLE_MODES,\n> +\t\tANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,\n> +\t\tANDROID_CONTROL_AE_COMPENSATION_RANGE,\n> +\t\tANDROID_CONTROL_AE_COMPENSATION_STEP,\n> +\t\tANDROID_CONTROL_AF_AVAILABLE_MODES,\n> +\t\tANDROID_CONTROL_AVAILABLE_EFFECTS,\n> +\t\tANDROID_CONTROL_AVAILABLE_SCENE_MODES,\n> +\t\tANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,\n> +\t\tANDROID_CONTROL_AWB_AVAILABLE_MODES,\n> +\t\tANDROID_CONTROL_MAX_REGIONS,\n> +\t\tANDROID_CONTROL_SCENE_MODE_OVERRIDES,\n> +\t\tANDROID_CONTROL_AE_LOCK_AVAILABLE,\n> +\t\tANDROID_CONTROL_AWB_LOCK_AVAILABLE,\n> +\t\tANDROID_CONTROL_AVAILABLE_MODES,\n> +\t\tANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,\n> +\t\tANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,\n> +\t\tANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE,\n> +\t\tANDROID_SENSOR_INFO_SENSITIVITY_RANGE,\n> +\t\tANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT,\n> +\t\tANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE,\n> +\t\tANDROID_SENSOR_ORIENTATION,\n> +\t\tANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES,\n> +\t\tANDROID_SENSOR_INFO_PHYSICAL_SIZE,\n> +\t\tANDROID_SENSOR_INFO_TIMESTAMP_SOURCE,\n> +\t\tANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES,\n> +\t\tANDROID_STATISTICS_INFO_MAX_FACE_COUNT,\n> +\t\tANDROID_SYNC_MAX_LATENCY,\n> +\t\tANDROID_FLASH_INFO_AVAILABLE,\n> +\t\tANDROID_LENS_INFO_AVAILABLE_APERTURES,\n> +\t\tANDROID_LENS_FACING,\n> +\t\tANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS,\n> +\t\tANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,\n> +\t\tANDROID_LENS_INFO_HYPERFOCAL_DISTANCE,\n> +\t\tANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,\n> +\t\tANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES,\n> +\t\tANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,\n> +\t\tANDROID_SCALER_AVAILABLE_FORMATS,\n> +\t\tANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,\n> +\t\tANDROID_SCALER_AVAILABLE_STALL_DURATIONS,\n> +\t\tANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,\n> +\t\tANDROID_SCALER_CROPPING_TYPE,\n> +\t\tANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,\n> +\t\tANDROID_REQUEST_PARTIAL_RESULT_COUNT,\n> +\t\tANDROID_REQUEST_PIPELINE_MAX_DEPTH,\n> +\t\tANDROID_REQUEST_AVAILABLE_CAPABILITIES,\n> +\t};\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n> +\t\t\tANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS,\n> +\t\t\tavailableCharacteristicsKeys.data(),\n> +\t\t\tavailableCharacteristicsKeys.size());\n> +\tMETADATA_ASSERT(ret);\n> +\n> +\tstd::vector<int32_t> availableRequestKeys = {\n> +\t\tANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> +\t\tANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n\nAre those request keys ? I would have expected them to be\ncharacteristics.\n\n> +\t\tANDROID_CONTROL_AE_MODE,\n> +\t\tANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,\n> +\t\tANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,\n> +\t\tANDROID_CONTROL_AE_LOCK,\n> +\t\tANDROID_CONTROL_AF_TRIGGER,\n> +\t\tANDROID_CONTROL_AWB_MODE,\n> +\t\tANDROID_CONTROL_AWB_LOCK,\n> +\t\tANDROID_FLASH_MODE,\n> +\t\tANDROID_STATISTICS_FACE_DETECT_MODE,\n> +\t\tANDROID_NOISE_REDUCTION_MODE,\n> +\t\tANDROID_COLOR_CORRECTION_ABERRATION_MODE,\n> +\t\tANDROID_CONTROL_CAPTURE_INTENT,\n> +\t};\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n> +\t\t\tANDROID_REQUEST_AVAILABLE_REQUEST_KEYS,\n> +\t\t\tavailableRequestKeys.data(),\n> +\t\t\tavailableRequestKeys.size());\n> +\tMETADATA_ASSERT(ret);\n> +\n> +\tstd::vector<int32_t> availableResultKeys = {\n> +\t\tANDROID_CONTROL_AE_STATE,\n> +\t\tANDROID_CONTROL_AE_LOCK,\n> +\t\tANDROID_CONTROL_AF_STATE,\n> +\t\tANDROID_CONTROL_AWB_STATE,\n> +\t\tANDROID_CONTROL_AWB_LOCK,\n> +\t\tANDROID_LENS_STATE,\n> +\t\tANDROID_SCALER_CROP_REGION,\n> +\t\tANDROID_SENSOR_TIMESTAMP,\n> +\t\tANDROID_SENSOR_ROLLING_SHUTTER_SKEW,\n> +\t\tANDROID_SENSOR_EXPOSURE_TIME,\n> +\t\tANDROID_STATISTICS_LENS_SHADING_MAP_MODE,\n> +\t\tANDROID_STATISTICS_SCENE_FLICKER,\n> +\t};\n> +\tret = add_camera_metadata_entry(staticMetadata_,\n> +\t\t\tANDROID_REQUEST_AVAILABLE_RESULT_KEYS,\n> +\t\t\tavailableResultKeys.data(),\n> +\t\t\tavailableResultKeys.size());\n> +\tMETADATA_ASSERT(ret);\n> +\n>  \treturn staticMetadata_;\n>  }\n>","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 53C5460BCF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Sep 2019 22:30:56 +0200 (CEST)","from pendragon.ideasonboard.com (85-76-18-41-nat.elisa-mobile.fi\n\t[85.76.18.41])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 784AD542;\n\tTue,  3 Sep 2019 22:30:55 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1567542655;\n\tbh=mJGSHcTYsMXcS2pQfOyri1MvxGiqy1vhWponRRxnjBY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=SPXFmrubmPJDGATlzuPa4xTXyduMaOw4NkScXkvjaIw3gGKLEs5uso44NQhDHZ5Kc\n\t+V7eof3q+yNkuISxtIjqfxA7iwt8UvBPPUkhu0NhUxI7tbKsS1oezjgd+9s53tkbq2\n\teBaB6n9SWc0LY9WoAzscMum6BpOWjR02pVVLLmUY=","Date":"Tue, 3 Sep 2019 23:30:46 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org, jcliang@google.com, wtlee@google.com","Message-ID":"<20190903203046.GI4788@pendragon.ideasonboard.com>","References":"<20190829165311.29196-1-jacopo@jmondi.org>\n\t<20190829165311.29196-4-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20190829165311.29196-4-jacopo@jmondi.org>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: camera_device: Report\n\tavailable keys","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":"Tue, 03 Sep 2019 20:30:56 -0000"}},{"id":2581,"web_url":"https://patchwork.libcamera.org/comment/2581/","msgid":"<20190904113448.sfgosik25gxt3oh2@uno.localdomain>","date":"2019-09-04T11:34:48","subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: camera_device: Report\n\tavailable keys","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Tue, Sep 03, 2019 at 11:30:46PM +0300, Laurent Pinchart wrote:\n> Hi Jacopo,\n>\n> Thank you for the patch.\n>\n> On Thu, Aug 29, 2019 at 06:53:10PM +0200, Jacopo Mondi wrote:\n> > Report the list of available static metadata tags (characteristicKeys),\n> > of supported controls (requestKeys) and produced metadata (resultKeys)\n> > in the static metadata pack.\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>\n> Have you tested this with valgrind (running the cros-camera service\n> under valgrind manually) ?\n>\n\nNo I will and will make sure the new sizes are big enough\n\n> > ---\n> >  src/android/camera_device.cpp | 101 +++++++++++++++++++++++++++++++++-\n> >  1 file changed, 99 insertions(+), 2 deletions(-)\n> >\n> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > index bc8ffed92c61..0163e8c4e39a 100644\n> > --- a/src/android/camera_device.cpp\n> > +++ b/src/android/camera_device.cpp\n> > @@ -130,9 +130,9 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n> >\n> >  \t/*\n> >  \t * \\todo Keep this in sync with the actual number of entries.\n> > -\t * Currently: 46 entries, 390 bytes\n> > +\t * Currently: 49 entries, 674 bytes\n> >  \t */\n> > -\tstaticMetadata_ = allocate_camera_metadata(50, 500);\n> > +\tstaticMetadata_ = allocate_camera_metadata(50, 700);\n> >\n> >  \t/* Color correction static metadata. */\n> >  \tstd::vector<uint8_t> aberrationModes = {\n> > @@ -505,6 +505,103 @@ camera_metadata_t *CameraDevice::getStaticMetadata()\n> >  \t\t\tavailableCapabilities.size());\n> >  \tMETADATA_ASSERT(ret);\n> >\n> > +\tstd::vector<int32_t> availableCharacteristicsKeys = {\n> > +\t\tANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES,\n> > +\t\tANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,\n> > +\t\tANDROID_CONTROL_AE_AVAILABLE_MODES,\n> > +\t\tANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,\n> > +\t\tANDROID_CONTROL_AE_COMPENSATION_RANGE,\n> > +\t\tANDROID_CONTROL_AE_COMPENSATION_STEP,\n> > +\t\tANDROID_CONTROL_AF_AVAILABLE_MODES,\n> > +\t\tANDROID_CONTROL_AVAILABLE_EFFECTS,\n> > +\t\tANDROID_CONTROL_AVAILABLE_SCENE_MODES,\n> > +\t\tANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,\n> > +\t\tANDROID_CONTROL_AWB_AVAILABLE_MODES,\n> > +\t\tANDROID_CONTROL_MAX_REGIONS,\n> > +\t\tANDROID_CONTROL_SCENE_MODE_OVERRIDES,\n> > +\t\tANDROID_CONTROL_AE_LOCK_AVAILABLE,\n> > +\t\tANDROID_CONTROL_AWB_LOCK_AVAILABLE,\n> > +\t\tANDROID_CONTROL_AVAILABLE_MODES,\n> > +\t\tANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,\n> > +\t\tANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,\n> > +\t\tANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE,\n> > +\t\tANDROID_SENSOR_INFO_SENSITIVITY_RANGE,\n> > +\t\tANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT,\n> > +\t\tANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE,\n> > +\t\tANDROID_SENSOR_ORIENTATION,\n> > +\t\tANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES,\n> > +\t\tANDROID_SENSOR_INFO_PHYSICAL_SIZE,\n> > +\t\tANDROID_SENSOR_INFO_TIMESTAMP_SOURCE,\n> > +\t\tANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES,\n> > +\t\tANDROID_STATISTICS_INFO_MAX_FACE_COUNT,\n> > +\t\tANDROID_SYNC_MAX_LATENCY,\n> > +\t\tANDROID_FLASH_INFO_AVAILABLE,\n> > +\t\tANDROID_LENS_INFO_AVAILABLE_APERTURES,\n> > +\t\tANDROID_LENS_FACING,\n> > +\t\tANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS,\n> > +\t\tANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,\n> > +\t\tANDROID_LENS_INFO_HYPERFOCAL_DISTANCE,\n> > +\t\tANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,\n> > +\t\tANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES,\n> > +\t\tANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,\n> > +\t\tANDROID_SCALER_AVAILABLE_FORMATS,\n> > +\t\tANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,\n> > +\t\tANDROID_SCALER_AVAILABLE_STALL_DURATIONS,\n> > +\t\tANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,\n> > +\t\tANDROID_SCALER_CROPPING_TYPE,\n> > +\t\tANDROID_INFO_SUPPORTED_HARDWARE_LEVEL,\n> > +\t\tANDROID_REQUEST_PARTIAL_RESULT_COUNT,\n> > +\t\tANDROID_REQUEST_PIPELINE_MAX_DEPTH,\n> > +\t\tANDROID_REQUEST_AVAILABLE_CAPABILITIES,\n> > +\t};\n> > +\tret = add_camera_metadata_entry(staticMetadata_,\n> > +\t\t\tANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS,\n> > +\t\t\tavailableCharacteristicsKeys.data(),\n> > +\t\t\tavailableCharacteristicsKeys.size());\n> > +\tMETADATA_ASSERT(ret);\n> > +\n> > +\tstd::vector<int32_t> availableRequestKeys = {\n> > +\t\tANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,\n> > +\t\tANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,\n>\n> Are those request keys ? I would have expected them to be\n> characteristics.\n>\n\nThey are, and they shoulnd't be part of the template request in firts\nplace. They were there already, and I will remove them in v2\n\nThanks\n  j\n\n> > +\t\tANDROID_CONTROL_AE_MODE,\n> > +\t\tANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,\n> > +\t\tANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,\n> > +\t\tANDROID_CONTROL_AE_LOCK,\n> > +\t\tANDROID_CONTROL_AF_TRIGGER,\n> > +\t\tANDROID_CONTROL_AWB_MODE,\n> > +\t\tANDROID_CONTROL_AWB_LOCK,\n> > +\t\tANDROID_FLASH_MODE,\n> > +\t\tANDROID_STATISTICS_FACE_DETECT_MODE,\n> > +\t\tANDROID_NOISE_REDUCTION_MODE,\n> > +\t\tANDROID_COLOR_CORRECTION_ABERRATION_MODE,\n> > +\t\tANDROID_CONTROL_CAPTURE_INTENT,\n> > +\t};\n> > +\tret = add_camera_metadata_entry(staticMetadata_,\n> > +\t\t\tANDROID_REQUEST_AVAILABLE_REQUEST_KEYS,\n> > +\t\t\tavailableRequestKeys.data(),\n> > +\t\t\tavailableRequestKeys.size());\n> > +\tMETADATA_ASSERT(ret);\n> > +\n> > +\tstd::vector<int32_t> availableResultKeys = {\n> > +\t\tANDROID_CONTROL_AE_STATE,\n> > +\t\tANDROID_CONTROL_AE_LOCK,\n> > +\t\tANDROID_CONTROL_AF_STATE,\n> > +\t\tANDROID_CONTROL_AWB_STATE,\n> > +\t\tANDROID_CONTROL_AWB_LOCK,\n> > +\t\tANDROID_LENS_STATE,\n> > +\t\tANDROID_SCALER_CROP_REGION,\n> > +\t\tANDROID_SENSOR_TIMESTAMP,\n> > +\t\tANDROID_SENSOR_ROLLING_SHUTTER_SKEW,\n> > +\t\tANDROID_SENSOR_EXPOSURE_TIME,\n> > +\t\tANDROID_STATISTICS_LENS_SHADING_MAP_MODE,\n> > +\t\tANDROID_STATISTICS_SCENE_FLICKER,\n> > +\t};\n> > +\tret = add_camera_metadata_entry(staticMetadata_,\n> > +\t\t\tANDROID_REQUEST_AVAILABLE_RESULT_KEYS,\n> > +\t\t\tavailableResultKeys.data(),\n> > +\t\t\tavailableResultKeys.size());\n> > +\tMETADATA_ASSERT(ret);\n> > +\n> >  \treturn staticMetadata_;\n> >  }\n> >\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay12.mail.gandi.net (relay12.mail.gandi.net\n\t[217.70.178.232])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1772560BB2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  4 Sep 2019 13:33:16 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay12.mail.gandi.net (Postfix) with ESMTPSA id 4237C20000F;\n\tWed,  4 Sep 2019 11:33:15 +0000 (UTC)"],"Date":"Wed, 4 Sep 2019 13:34:48 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, jcliang@google.com, wtlee@google.com","Message-ID":"<20190904113448.sfgosik25gxt3oh2@uno.localdomain>","References":"<20190829165311.29196-1-jacopo@jmondi.org>\n\t<20190829165311.29196-4-jacopo@jmondi.org>\n\t<20190903203046.GI4788@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"6ujg6zm2kkmijimh\"","Content-Disposition":"inline","In-Reply-To":"<20190903203046.GI4788@pendragon.ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: camera_device: Report\n\tavailable keys","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":"Wed, 04 Sep 2019 11:33:16 -0000"}}]