From patchwork Fri Aug 19 06:53:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rishikesh Donadkar X-Patchwork-Id: 17173 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 CCDE8BE173 for ; Fri, 19 Aug 2022 06:53:41 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 23FD061FC0; Fri, 19 Aug 2022 08:53:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1660892021; bh=ynJSBwftAuJ2ZkgKGDJepNYTbKpsE30MWLX1d78Yl1M=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=KtlVi4kJ74dDUmtRkxMBCQywkbjQUUZ1EQUQvDgJv+tL1KmYqkQLoORFJm+ohLdC/ nh6TgbSIEnwi3kgR3Z/NoLgGuGK2WlLJMqOuFdAdT9k5Yv4yk5VXH3B/JdbVvvbr0J ScYz6sTUfXLCGFk0ZmJGO7QhHZy41QiOboVyybRPJuwrT4t7VPf3k+h9JnyRFeUPqf 89VKn77gDsd6pOuXWYPZxfk5cD6944J1sf81lbfaP4TS4fJElkUS4aBpMVhNTrUaKN u8k4BP33e6pfeKTJJ0CBIYbBfC6dsTV5UCsexikxaBa0tCeerNbwchHFS3hBO7J7KD BhvPsgQI7ue1Q== Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 07ACB603E2 for ; Fri, 19 Aug 2022 08:53:40 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="dCupWto1"; dkim-atps=neutral Received: by mail-pj1-x102d.google.com with SMTP id e19so2585072pju.1 for ; Thu, 18 Aug 2022 23:53:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc; bh=sprNeElNKjjMtjUdqKt12iCYNZedSM4J5+g8XNeyKZc=; b=dCupWto1dUTwM0Ci7i7BGTpa5C5ZGPqrhn2u45vBjp0kYlW9vCV38+lLzaXw1m9S16 1wRIMZL9O4mHB91IyHPKtpOuWmkxMTJfk+5iOffh9v7JAtbfDkBg6OY1Zn6d1VUxmoPP Tlpr0FRzoDUoBee5wMdJImymOWdBVPd7Q85sxrMEKzyZirenKWGlpFV+8/eJ59TgK2GS jU+YOhfXQWIumucIZ6xsXNtj3E6Hu589iAaoArCQQSZyfHkTw3sMOi2cS3dLVqA9M3s6 TZCQahbGlzR4SIsQTZvU4YP51Na0OW/VkEsQr+cnqjC2qKaaQTUHzPlAjgkMqgt3S8mF hbbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc; bh=sprNeElNKjjMtjUdqKt12iCYNZedSM4J5+g8XNeyKZc=; b=MPj8wh7hwrvv0bSPFFno8eARPQff2frK/0u28eeSp8GI0frAEJgJpd9kGQocNPybpg WCLkynMqZW01qRrNvdkJ7w1jy1t7MQ7HcF+qdCaQzmwOn3Pyzy0kbOsnkKfolxM1Pq5I 17fqoCgW4UvFXkow9NywSkKhBIFN9T0wHpCyxMTKYjLhpQXUMMmiFaWPN4uRo7tmbs1k dXEIMgUKU2A+qjmqnYZU4EwGxDadMzyNOTADyf8b90AXhXm28Rdz73F93I6PB6ROJ2jK PKisnwCsl3z14Boy60XtprWeZqP6hbGPbMTm57hpt2F5Nhx7m7l+/sS7XFNPzDbrvFho rxqg== X-Gm-Message-State: ACgBeo2fPzUKx0hXr1uLNL/h8pRadRRHxdJuylmEpkz4M+LHXrf9OZs7 ifqVpg4Y+TkBp0QgO0B5Hp6aOi0HZVkvew== X-Google-Smtp-Source: AA6agR6bWfjWyXLFneyiZonRoUHY+oirhvQMiuq1ZODK1sPFr07HO93Ud6N0LciFTc34dXW3393b7w== X-Received: by 2002:a17:902:9683:b0:172:a112:4fda with SMTP id n3-20020a170902968300b00172a1124fdamr6256273plp.8.1660892017936; Thu, 18 Aug 2022 23:53:37 -0700 (PDT) Received: from localhost.localdomain ([49.36.101.190]) by smtp.googlemail.com with ESMTPSA id n17-20020a170902d2d100b0016d6c939332sm2451945plc.279.2022.08.18.23.53.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Aug 2022 23:53:37 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Fri, 19 Aug 2022 12:23:22 +0530 Message-Id: <20220819065323.10051-1-rishikeshdonadkar@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v5 0/1] Multiple colorimetry support for libcamerasrc 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-Patchwork-Original-From: Rishikesh Donadkar via libcamera-devel From: Rishikesh Donadkar Reply-To: Rishikesh Donadkar Cc: Rishikesh Donadkar , nicolas.dufresne@collabora.com, vedantparanjape160201@gmail.com Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" GStreamer pipeline supports passing multiple colorimetry as a comma separated list. For Example : gst-launch-1.0 libcamerasrc ! "video/x-raw,colorimetry={bt2020,bt709,sRGB}" ! glimagesink In this case, if supported by the camera one of bt2020, bt709, sRGB should be applied. This series aims to adds multiple colorimetry support to the libcamera gstreamer element. ... Based on top of [v3 PATCH 4/4] gstreamer: Provide colorimetry <> ColorSpace mappings. https://patchwork.libcamera.org/project/libcamera/list/?series=3360 ... --- changes from v1 to v2: - Moved the function colorspace_from_colorimetry() from PATCH 1/2 to PATCH 2/2. changes from v2 to v3: - Rebase on top of [v3 PATCH 4/4] gstreamer: Provide colorimetry <> ColorSpace mappings. - Use the comparator utility function gst_video_colorimetry_is_equal() to cut down code. - Rename dup_stream_cfg to pristine_stream_cfg. - Log the colorimetry that is selected from the list. - Change the API for the function gst_libcamera_configure_stream_from_caps() to pass pass state->config_ here instead of taking it in a holder variable reference. changes from v3 to v4: - Discard the approach form expanding the colorimetry list through caps normalization. Instead enumerate the colorimetry list and try out the colorimetry. - Add error checking for invalid colorimetry. changes for v4 to v5: - Use gboolean instead of int. Return true/false. - Add else if for the mutually exclusive conditions. - Add final else to trace if anything other than a string or a list is passed in the colorimetry field by the user. --- Rishikesh Donadkar (1): gstreamer: Provide mulitple colorimetry support src/gstreamer/gstlibcamera-utils.cpp | 76 +++++++++++++++++++++------- src/gstreamer/gstlibcamera-utils.h | 4 +- src/gstreamer/gstlibcamerasrc.cpp | 2 +- 3 files changed, 63 insertions(+), 19 deletions(-)