From patchwork Fri Mar 26 16:26:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phi-bang Nguyen X-Patchwork-Id: 11731 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 11E22C32EB for ; Fri, 26 Mar 2021 16:26:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 525A168D6B; Fri, 26 Mar 2021 17:26:38 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="xI7HkL99"; dkim-atps=neutral Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com [IPv6:2607:f8b0:4864:20::d2e]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 493626051A for ; Fri, 26 Mar 2021 17:26:37 +0100 (CET) Received: by mail-io1-xd2e.google.com with SMTP id b10so5980532iot.4 for ; Fri, 26 Mar 2021 09:26:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to:cc; bh=lj8II5XTXdxeoJyWnInWA8NsIrMhImdPTAyw7GWAw3w=; b=xI7HkL99lEQxM1djXve6y1/k9RajDyrA6tVmSwk7cUXlIiKmzQUmk59lEFsY/zTshV sQ1yeA9bjdcQZeH4+uoemX952AWZVRJcg/95lVmxC51L5tXC0O4CEhEEd5pLhQAE8Fac JnDD5z4LJ21wlgAQqQWfQljTnwmnCKoEP/fB7/PW57mdYVkx6YfWKiRISROrwSAJvzD8 9MS8VEXDydd0RfgyURQJ61M7iKiVCeK20Hf9x/r1tzBypjId7AMuI+5KkOsFEV0qlMml duvrSIANDOPBS01n6qbehIZ2V4gD3Ms1rc7FDdOuXZWlEydH09a9QvPEwN88zX/aWgY9 oIPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=lj8II5XTXdxeoJyWnInWA8NsIrMhImdPTAyw7GWAw3w=; b=qWdZhKqjqPCo/Nm6t8RQkB89fimyK/li3FLd9Z9mngfDgbnJa/pZ0YC7OCMcdDkNsc RdgEIiLlQL9mnqS064+cpYxe7xXy6Zlkdz33KWDEgqqHCSJLEgnDiqDnlsriXeVfCyEY wrb6QHJJ1s3/KFVmsdX5b/YDW3OAJS1U+T1o3M8v5mWi+fi5n9pUHqofDvkckPy3pG8k sPYCVWUzu0T/WZHTKx21YTO3jq2OrePNkoPVwmIgI4yvul0M/emSqjusKyfwnQWVlT6Q e0yrM8MmJyTDzEmif/L/1i/42vT53L3P3LGJi6+jkfAu9uCuhjXf6AskQvQB+pbivipT KV1w== X-Gm-Message-State: AOAM5306RgkHzVYLQJvdCf4EsKluYVaDdexLMPdzC+VPjnJedSBHCNVT noaiNA6LY6uyjz8jbVP5L15R4noVFq72I/bjQNjvCJSoxbIJSQ== X-Google-Smtp-Source: ABdhPJxMlC6ICxbKarQ7DWK+ygAdaiySowOVZOm0IJZUbh194FDH9oKVdmtcrGQnou3npQxtnrqr1llxhOCaJ6aQ4/Q= X-Received: by 2002:a6b:3bc7:: with SMTP id i190mr11098216ioa.163.1616775995845; Fri, 26 Mar 2021 09:26:35 -0700 (PDT) MIME-Version: 1.0 From: Phi-bang Nguyen Date: Fri, 26 Mar 2021 17:26:24 +0100 Message-ID: To: libcamera-devel@lists.libcamera.org Subject: [libcamera-devel] [PATCH] android: CameraDevice: Add existing check for ScalerCrop control X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The ScalerCrop control does not contain the existing check which can cause the camera HAL crash at boot. Fix it. Signed-off-by: Phi-Bang Nguyen --- src/android/camera_device.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) } -- Regards Phi-Bang diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index ae693664..678bfff8 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -1107,11 +1107,14 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() * use the maximum and minimum crop rectangles to calculate the * digital zoom factor. */ + float maxZoom = {1}; const auto info = controlsInfo.find(&controls::ScalerCrop); - Rectangle min = info->second.min().get(); - Rectangle max = info->second.max().get(); - float maxZoom = std::min(1.0f * max.width / min.width, + if (info != controlsInfo.end()) { + Rectangle min = info->second.min().get(); + Rectangle max = info->second.max().get(); + maxZoom = std::min(1.0f * max.width / min.width, 1.0f * max.height / min.height); + } staticMetadata_->addEntry(ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, &maxZoom, 1);