From patchwork Mon Jun 22 14:42:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kaaira Gupta X-Patchwork-Id: 4113 Return-Path: Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D8688603BD for ; Mon, 22 Jun 2020 16:43:05 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=es-iitr-ac-in.20150623.gappssmtp.com header.i=@es-iitr-ac-in.20150623.gappssmtp.com header.b="uJPsoaBj"; dkim-atps=neutral Received: by mail-pl1-x633.google.com with SMTP id y18so7673622plr.4 for ; Mon, 22 Jun 2020 07:43:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=es-iitr-ac-in.20150623.gappssmtp.com; s=20150623; h=date:from:to:subject:message-id:mime-version:content-disposition :user-agent; bh=e7bAIgwEZ6H2ceQIzrYCe5roF2dUQtcnWoZUniepiuc=; b=uJPsoaBj6/ZbQdpO2vdN7CQRilIFyXuZHA9tDyu/vpP3N3LiPf9fznyooKddtjjHhw e4zeQ7ojVCVp/zyxvcEWWhRF7oWcehwWF2efSITORrMW2dYz02JcQl8GO5NaJIomkCQw rF/i99pam5eVjuEXVa1fjmpS0OFoe1APy/zrKT8GJG6+OFHJOCYobqBnHz2zAnLK3dc6 KENCumqqgT2acpvufZ4Q+W0/teoLmHBCYkxCFDciIuADfP54u5rkvyCM4u37uCgU57Wj WeVjZqphJCE0Czv4V4V3zdYvH+9jNnaWtVfeLbdRLEh3hVXlsweGCmMqEhwjfJoHdGAF JxKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=e7bAIgwEZ6H2ceQIzrYCe5roF2dUQtcnWoZUniepiuc=; b=GLYews9ekOFU1Cze7iiatbKgwPL1+e5vRTYpXJUHjggPi4zOGFwupXpCCVeyovGUCL WfBxO/jp2zUhUb0X8voVT10Rq+kirDVaqJjxdLBbOvEWwrcjvNgGOWp2klSS4RgZpX30 h7LtFwxhSvTRt2uCnTx0YDdavcGThEJAC+KC8jXxAxh9WdbI57X4aPFwVGrpKJNSJAC0 Lzs7dPIlctY9ml7qVZyNiZ6O9INtyzEUISyM5mcn5n53nniKNYfTfOh91j6sIdvMNLaN EGTXP7kv25/9T6qQerjGRjbbqCiSgER8IsnA29wIpH6LkjdYOmS4EpFQnpp36tOpb0Hh ZVZQ== X-Gm-Message-State: AOAM531oKOPRir9byE/e9D+1q0dMNX014bIPdvnizYNSHhcCWt2uROIH HOnWFpLfQdjaCkB+tcs+tWei9Rad35iJ+w== X-Google-Smtp-Source: ABdhPJxejtaTIQzINsWmj7nPR5jQTjjeYbjMUGHfPCzLNZWk0Z/nd9IHx30prS7qIBOXdwR0sDufVg== X-Received: by 2002:a17:902:fe8b:: with SMTP id x11mr19709302plm.179.1592836983935; Mon, 22 Jun 2020 07:43:03 -0700 (PDT) Received: from kaaira-HP-Pavilion-Notebook ([103.113.213.178]) by smtp.gmail.com with ESMTPSA id s98sm14281431pjb.33.2020.06.22.07.43.01 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 22 Jun 2020 07:43:03 -0700 (PDT) Date: Mon, 22 Jun 2020 20:12:57 +0530 From: Kaaira Gupta To: libcamera-devel@lists.libcamera.org, Kieran Bingham , Niklas =?iso-8859-1?q?S=F6derlund?= Message-ID: <20200622144257.GA27697@kaaira-HP-Pavilion-Notebook> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) Subject: [libcamera-devel] [PATCH v2] libcamera: stream_option: use format name to set cam/qcam format 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: , X-List-Received-Date: Mon, 22 Jun 2020 14:43:06 -0000 Replace hex input for pixelformats with their format names, for input in cam and qcam. Signed-off-by: Kaaira Gupta --- Changes since v1: -use format names, according to formats namespace, instead of FourCC src/cam/stream_options.cpp | 52 +++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/src/cam/stream_options.cpp b/src/cam/stream_options.cpp index bd12c8f..9fc428a 100644 --- a/src/cam/stream_options.cpp +++ b/src/cam/stream_options.cpp @@ -6,6 +6,8 @@ */ #include "stream_options.h" +#include + #include using namespace libcamera; @@ -19,7 +21,7 @@ StreamKeyValueParser::StreamKeyValueParser() ArgumentRequired); addOption("height", OptionInteger, "Height in pixels", ArgumentRequired); - addOption("pixelformat", OptionInteger, "Pixel format", + addOption("pixelformat", OptionString, "Pixel format name", ArgumentRequired); } @@ -96,8 +98,52 @@ int StreamKeyValueParser::updateConfiguration(CameraConfiguration *config, } /* \todo Translate 4CC string to pixelformat with modifier. */ - if (opts.isSet("pixelformat")) - cfg.pixelFormat = PixelFormat(opts["pixelformat"]); + if (opts.isSet("pixelformat")) { + std::map pixelFormatNames{ + { "BGR888", formats::BGR888 }, + { "RGB888", formats::RGB888 }, + { "ABGR8888", formats::ABGR8888 }, + { "ARGB8888", formats::ARGB8888 }, + { "BGRA8888", formats::BGRA8888 }, + { "RGBA8888", formats::RGBA8888 }, + { "YUYV", formats::YUYV }, + { "YVYU", formats::YVYU }, + { "UYVY", formats::UYVY }, + { "VYUY", formats::VYUY }, + { "NV16", formats::NV16 }, + { "NV61", formats::NV61 }, + { "NV12", formats::NV12 }, + { "NV21", formats::NV21 }, + { "YUV420", formats::YUV420 }, + { "YUV422", formats::YUV422 }, + { "R8", formats::R8 }, + { "SBGGR8", formats::SBGGR8 }, + { "SGBRG8", formats::SGBRG8 }, + { "SGRBG8", formats::SGRBG8 }, + { "SRGGB8", formats::SRGGB8 }, + { "SBGGR10", formats::SBGGR10 }, + { "SGBRG10", formats::SGBRG10 }, + { "SGRBG10", formats::SGRBG10 }, + { "SRGGB10", formats::SRGGB10 }, + { "SBGGR10_CSI2P", formats::SBGGR10_CSI2P }, + { "SGBRG10_CSI2P", formats::SGBRG10_CSI2P }, + { "SGRBG10_CSI2P", formats::SGRBG10_CSI2P }, + { "SRGGB10_CSI2P", formats::SRGGB10_CSI2P }, + { "SBGGR12", formats::SBGGR12 }, + { "SGBRG12", formats::SGBRG12 }, + { "SGRBG12", formats::SGRBG12 }, + { "SRGGB12", formats::SRGGB12 }, + { "SBGGR12_CSI2P", formats::SBGGR12_CSI2P }, + { "SGBRG12_CSI2P", formats::SGBRG12_CSI2P }, + { "SGRBG12_CSI2P", formats::SGRBG12_CSI2P }, + { "SRGGB12_CSI2P", formats::SRGGB12_CSI2P }, + { "MJPEG", formats::MJPEG }, + }; + + std::map::iterator it; + it = pixelFormatNames.find(opts["pixelformat"]); + cfg.pixelFormat = it->second; + } } return 0;