[{"id":3455,"web_url":"https://patchwork.libcamera.org/comment/3455/","msgid":"<20200115195532.GD977577@oden.dyn.berto.se>","date":"2020-01-15T19:55:32","subject":"Re: [libcamera-devel] [RFC 2/7] libcamera: sensor: Add OV5670\n\tcamera sensor","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 work.\n\nOn 2019-12-18 15:49:56 +0100, Jacopo Mondi wrote:\n> Add OV5670CameraSensor class to handle Omnivision OV5670 image sensor\n> and add support for it in the CameraSensorFactory::create() method.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/camera_sensor.cpp  |  6 ++++++\n>  src/libcamera/meson.build        |  1 +\n>  src/libcamera/sensor/meson.build |  3 +++\n>  src/libcamera/sensor/ov5670.cpp  | 18 ++++++++++++++++++\n>  src/libcamera/sensor/ov5670.h    | 23 +++++++++++++++++++++++\n>  5 files changed, 51 insertions(+)\n>  create mode 100644 src/libcamera/sensor/meson.build\n>  create mode 100644 src/libcamera/sensor/ov5670.cpp\n>  create mode 100644 src/libcamera/sensor/ov5670.h\n> \n> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n> index ac8878fe336e..d1c9c9bcd58f 100644\n> --- a/src/libcamera/camera_sensor.cpp\n> +++ b/src/libcamera/camera_sensor.cpp\n> @@ -6,12 +6,14 @@\n>   */\n>  \n>  #include \"camera_sensor.h\"\n> +#include \"sensor/ov5670.h\"\n>  \n>  #include <algorithm>\n>  #include <float.h>\n>  #include <iomanip>\n>  #include <limits.h>\n>  #include <math.h>\n> +#include <string>\n>  \n>  #include <libcamera/property_ids.h>\n>  \n> @@ -47,6 +49,10 @@ LOG_DEFINE_CATEGORY(CameraSensor);\n>   */\n>  CameraSensor *CameraSensorFactory::create(const MediaEntity *entity)\n>  {\n> +\tconst std::string &sensorName = entity->name();\n> +\tif (sensorName == \"ov5670\")\n> +\t\treturn new OV5670CameraSensor(entity);\n> +\n>  \treturn new CameraSensor(entity);\n>  }\n>  \n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index 14aff6e5fc13..d8d7ac248ae3 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -55,6 +55,7 @@ includes = [\n>  \n>  subdir('pipeline')\n>  subdir('proxy')\n> +subdir('sensor')\n>  \n>  libudev = dependency('libudev', required : false)\n>  \n> diff --git a/src/libcamera/sensor/meson.build b/src/libcamera/sensor/meson.build\n> new file mode 100644\n> index 000000000000..7af70370cf5c\n> --- /dev/null\n> +++ b/src/libcamera/sensor/meson.build\n> @@ -0,0 +1,3 @@\n> +libcamera_sources += files([\n> +    'ov5670.cpp',\n> +])\n> diff --git a/src/libcamera/sensor/ov5670.cpp b/src/libcamera/sensor/ov5670.cpp\n> new file mode 100644\n> index 000000000000..ca9f3c1d544f\n> --- /dev/null\n> +++ b/src/libcamera/sensor/ov5670.cpp\n> @@ -0,0 +1,18 @@\n> +/* SPDX-License-Identifier: LGPL-2.1-or-later */\n> +/*\n> + * Copyright (C) 2019, Google Inc.\n> + *\n> + * ov5670.cpp - OV5670 camera sensor\n> + */\n> +\n> +#include \"ov5670.h\"\n> +#include \"camera_sensor.h\"\n> +\n> +namespace libcamera {\n> +\n> +OV5670CameraSensor::OV5670CameraSensor(const MediaEntity *entity)\n> +\t: CameraSensor(entity)\n> +{\n> +}\n> +\n> +}; /* namespace libcamera */\n> diff --git a/src/libcamera/sensor/ov5670.h b/src/libcamera/sensor/ov5670.h\n> new file mode 100644\n> index 000000000000..f84239c8411d\n> --- /dev/null\n> +++ b/src/libcamera/sensor/ov5670.h\n> @@ -0,0 +1,23 @@\n> +/* SPDX-License-Identifier: LGPL-2.1-or-later */\n> +/*\n> + * Copyright (C) 2019, Google Inc.\n> + *\n> + * ov5670.h - OV5670 camera sensor\n> + */\n> +#ifndef __LIBCAMERA_OV5670_H__\n> +#define __LIBCAMERA_OV5670_H__\n> +\n> +#include \"camera_sensor.h\"\n> +\n> +namespace libcamera {\n> +\n> +class OV5670CameraSensor final : public CameraSensor\n> +{\n> +private:\n> +\tOV5670CameraSensor(const MediaEntity *entity);\n> +\tfriend CameraSensorFactory;\n\nCan't we make the constructor public for sub-classes?\n\n> +};\n> +\n> +}; /* namespace libcamera */\n> +\n> +#endif /* __LIBCAMERA_OV5670_H__ */\n> -- \n> 2.24.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-x133.google.com (mail-lf1-x133.google.com\n\t[IPv6:2a00:1450:4864:20::133])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AEFF36045C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 15 Jan 2020 20:55:33 +0100 (CET)","by mail-lf1-x133.google.com with SMTP id v201so13680776lfa.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 15 Jan 2020 11:55:33 -0800 (PST)","from localhost (h-93-159.A463.priv.bahnhof.se. [46.59.93.159])\n\tby smtp.gmail.com with ESMTPSA id\n\tz7sm9687338lji.30.2020.01.15.11.55.32\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 15 Jan 2020 11:55:32 -0800 (PST)"],"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\tbh=D81wX/SpLFzDMwqsPsXzpLkDwYXcewOQ3U8dbnEQ/WI=;\n\tb=gKJlHhdaAe2sHvWh5/IDAXj9Wg1zhXQcwiQ0ApNoUXpPm6HTLPUVcqjh3RO77OfaYl\n\trR0fFjqnFKFUB6cpc4D1n3jRa4W2v0H0AdctqdMqHr0hijuYx1oN3O+ELpq3ie/iLG8l\n\t3/Sx6jbaURdF1amFm3QA5m9Efh+2kwIX+nqErkBxLV+DvkMZrsFUFZqRlE55Z+PExt6+\n\tafyCiiagS8woszITLAhvEmwhWzlLz9aEaKWy2Y/xzG/L00Ne+07MA9ib7MgpcgZmRu6Z\n\tSGNpFwd1v9h0i4EARQkE5FPh2h1UKIaMh+x55LYFYbZld3VTUQ3YhyX73UagsoYAuOGK\n\t1dCQ==","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;\n\tbh=D81wX/SpLFzDMwqsPsXzpLkDwYXcewOQ3U8dbnEQ/WI=;\n\tb=RI5VE393qNoTUgIOVF7tkOeCkN27wBH6KYmUqRuFJV4h8kvMUAYl40jn7Lu39D46cj\n\tvVHhgXJn/4EHgkrG4gF/UQ3pilvUIkiEY3BfEzM4F1eT9vX+FsRxB7fIxebYia4uig1a\n\titNziJgsCBD00eqoMso1fdfs2bT91L0JSIbMYtehY/wHkMu3nETp/Ox5EbLjLqAevYvr\n\tJU2GnKJS6uOmyTNSLhrWaA320wg4cn3UwWWINQmtYR4/Yuu/OlHiOhdY7f34H8ClAGlG\n\tO1aHx48x8SzTCZ3vJy9Kv5nW5GD8wz8dCFg7DaevEDX6tDpkNNwzjuvqpDpXUm7NZurz\n\txMEA==","X-Gm-Message-State":"APjAAAWlINSAFquDBlRxkIZYRsfzM4SCg8Ug4H9/WtQxcGdpJCKLBSBM\n\tsIXABYq+IODyOPIU/PWqn4BfIH3FzU0=","X-Google-Smtp-Source":"APXvYqxzrWiRvYO6DvBDkv6HgsRzub+zyjPXCNtONBrFFQiF/oVN7hcUxDLHybfAwj8zPUpVBO9jkg==","X-Received":"by 2002:a19:5f05:: with SMTP id t5mr323892lfb.149.1579118133132; \n\tWed, 15 Jan 2020 11:55:33 -0800 (PST)","Date":"Wed, 15 Jan 2020 20:55:32 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200115195532.GD977577@oden.dyn.berto.se>","References":"<20191218145001.22283-1-jacopo@jmondi.org>\n\t<20191218145001.22283-3-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":"<20191218145001.22283-3-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [RFC 2/7] libcamera: sensor: Add OV5670\n\tcamera sensor","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","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, 15 Jan 2020 19:55:33 -0000"}}]