Message ID | 20240614065120.896247-1-neel.gandhi@amd.com (mailing list archive) |
---|---|
State | Rejected |
Headers |
Received: from am.mirrors.kernel.org ([147.75.80.249]) by linuxtv.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <linux-media+bounces-13225-patchwork=linuxtv.org@vger.kernel.org>) id 1sI0nV-0006ub-1r for patchwork@linuxtv.org; Fri, 14 Jun 2024 06:52:31 +0000 Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 5AF251F231D0 for <patchwork@linuxtv.org>; Fri, 14 Jun 2024 06:52:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 63561146004; Fri, 14 Jun 2024 06:52:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="BbwoNRhm" X-Original-To: linux-media@vger.kernel.org Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2066.outbound.protection.outlook.com [40.107.223.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B5EA1482FC for <linux-media@vger.kernel.org>; Fri, 14 Jun 2024 06:52:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718347931; cv=fail; b=jgj8zYp5ERvphrn6OsaNp9KGz2iVa08cvAGRt8HHEddCfvlDFgwbRERgeAwbvLVMev2De4A+saCblOZBB2fZDb0q6WY0az2/fN/+T/IrXhvJxMKuEVP11hj34FkS7z8uuB1VTdKiOHaoqiOBipwzqT8UqW2JyYaeHZoGzqlrqSQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718347931; c=relaxed/simple; bh=5hDGx/BZ1B3XlewhF9Vk7IA5uVsA7iol0qkfLaf7q8E=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=D62Yd2e5w0SzJFDNCv7KynDHPl5ZIG1r3y2B5TtYetJzfkY8rsVS747vuLK92Oh6V59KFdGhwT6WX2PKQXNtxz5uYmn/wBniOgNsooDiQF1wuLQceKJbPQ7YSsQx4/UEtO7RMEYYZ2oCuUmzBDdZZaz6lHQXWHvMHlk5xjVk5mg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=BbwoNRhm; arc=fail smtp.client-ip=40.107.223.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IHZdw7tDZBBg1Ys4eA7HGZRz9wYtua/LTjvsicG0kXS4VGeLInXLB3hi7kSdce2+5qviFJGjjcYNpNNUksSgn2dD/lMMU4WqPDoG3VQhpfHgwgIgRsrlXX6Ai80VxGoOtMSDCrouuqPGAetBhsON5Qyo+z7ha2JTUEaid/Yxwj6KqX2vP1AAT+C1iOpx2Og5tIYkURJSGVfCwQLIhobNPT/eEzqSEzZCHp4si70AUtJCPQ58tqM/Z24GwbZL8JdbgF8onXiXKQr9etGxDpe1zSDeHlCcQJSB7JaEumFsDs2FQLAbRETTgNRXA9tkW6GE8ixgOpnxEmVctngM8aVz2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5oDTON2/5qjoBVQvrNcgyTl4aQOPbud15u8HPLKhDM4=; b=OjLndZcGgXXhs5LvGIyWfdzzpYK0hRFmfLqSkHzuXfbHCaa2g/nBfT9ocVSIvjUbsbxvWreuBZwQnWZeIFsIhNjfzLuAmhBypPaoDw58E4InamNjAnzxoYVyTK9jdU9QO313BSwl+6jXs5Ahr5/hYNxhddiSA/9kpK+zkRRJFLRDaZJGdQKGn02YkiBoqGZEchMsQAKIxUgLsQV6aujUgrvsY0Bo4zPTh9TdY5cnm3x2OMiVxFZ6HNCNFDLiAKUzPGG+LVBmB0xyc5xbgSOSV6xdkPpeVppPKvpicqrBBT1jR2WoaKosh57X+47rfhXk+mmcF8FOIV4YSMP9XkDpTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5oDTON2/5qjoBVQvrNcgyTl4aQOPbud15u8HPLKhDM4=; b=BbwoNRhmCxbK/vymjbyeEVkkGzXI9nBav3ICIQTCp/1Li0mvIJ5pbYBLtZWIrnESscJqFf4NNqZVUTrSmLWA5yiXYYsHGMGKS9+KYdsthZwqp3Rkdk1b1vT0pIvxlDUPIg+zoFycYXWjnhAHCQCalZhZb6awsZBEU2euefZVNdQ= Received: from BL0PR02CA0071.namprd02.prod.outlook.com (2603:10b6:207:3d::48) by MW6PR12MB8958.namprd12.prod.outlook.com (2603:10b6:303:240::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.23; Fri, 14 Jun 2024 06:52:06 +0000 Received: from BL6PEPF0001AB52.namprd02.prod.outlook.com (2603:10b6:207:3d:cafe::d3) by BL0PR02CA0071.outlook.office365.com (2603:10b6:207:3d::48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.21 via Frontend Transport; Fri, 14 Jun 2024 06:52:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL6PEPF0001AB52.mail.protection.outlook.com (10.167.241.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7677.15 via Frontend Transport; Fri, 14 Jun 2024 06:52:06 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 14 Jun 2024 01:52:04 -0500 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 14 Jun 2024 01:52:04 -0500 Received: from xhdneelg40x.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Fri, 14 Jun 2024 01:52:02 -0500 From: Neel Gandhi <neel.gandhi@amd.com> To: <linux-media@vger.kernel.org> CC: <neel.gandhi@amd.com>, <hverkuil@xs4all.nl>, <laurent.pinchart@ideasonboard.com>, <sakari.ailus@iki.fi>, <mark.hatle@amd.com>, <varunkumar.allagadapa@amd.com>, <vishal.sagar@amd.com> Subject: [v4l-utils] utils: media-ctl: Install media-ctl header and library files Date: Fri, 14 Jun 2024 12:21:20 +0530 Message-ID: <20240614065120.896247-1-neel.gandhi@amd.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: <linux-media.vger.kernel.org> List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain Received-SPF: None (SATLEXMB05.amd.com: neel.gandhi@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB52:EE_|MW6PR12MB8958:EE_ X-MS-Office365-Filtering-Correlation-Id: 9447d072-0613-40db-5e5a-08dc8c3e8134 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230035|82310400021|376009|1800799019|36860700008; X-Microsoft-Antispam-Message-Info: 1yfEsq8ge7kcWXT6YFpcGQgl4JeZUC96y1svRXMbTdzsoazxs6yjtPuIZed17bGBTUTx7gD0P0NVOUjOxW2ldY/HOz0fp2rq5iNnBFpOP3y0UnF+5NWANoOqUCldL4LKqjAmsLTyUlELdSS3p7dpOhNv/Q8xpTtGfh4ILuDH8om7MjzSjHzR8jC1B6gdQZ+6Dg+9yqOXWWlT48t8dwofODyV3JHXU4U964XBuiqJKZmuus5QIOFgMEXy0YEvqoT/RZXAwE1lpDEn7DrqugFTLFGODUFYJWLeI73xZqgjimGUygWiyIiuZxQcIQGVV7CD4d/wpqcp9HVZIgOnyFubvART0LVgOIdcHUbJUPWUYMVZbD7Z94VcltzlTL7HR7G2GrFOHAafPcG23PWRJJUkJnIrXZ+WhVUYdjxbGJxckgPQ1u/Sdgwx/wtg//4QlQX8XVclIs/DZZsMBWS5bXQhQBoo2ddnStkgfdWkyeBDw6CFk4mfg7qawrG7lH9DRkdxus6xSrgXHQ5I2E83qgUaLzxF82HwYI7BY4I4IHZDsvag0tfkkLDZfN8dz8pEctW5GU/sNkCJcPl7sycqzouXYaZOEAwath/qvIoBlDIyJ25Icp6cAZqJwIb8MncWcHmFwgEjh4h/0GCVXoor55EeoWVJFGEqzaAycvgn380POfNViQRG+8RopPpOGczkacCAc6JuzVLwM1moKGiwUidiFGKt+sFY07PCz93iyQCg1fOlPVGFMCdw/cV7fvcs95w0N3xEJli3SP44e6OFT7tXUtNJsRZFMYucujSUMSFJ3GSRZ75ZgsPqfNF3SphVpZpc0sDnTxZubLl39itHvMfXLfCRA54+tJstlSxVFuRWASIPe4v0EqlAk8o6m2JYYV9Fl85JHpcjGILE89a8E1amsxqSQiSeNQnSIvrz4yyQD4czg5IpjAZmLmDl0k++MUD9dYpPTKAHWSGPm1ISO1iBkk8R8Jx05mbk3fla5HSDzG8NjE0UEWKejbk5YcWNbRaH8hXstJK7rmliTHrcF77btZFfOaB7tyf4BsAbLvBqYS2cq+ImGYOSEHbw/IuMrX6jkNw+nEhvoE9WbZuIDR76OalzurbdOK7S8OvrZhO/XToPEKAMliRXiwa53IFvpHGc/k6ucIf0q+y6LuTnIIkFGIBFW81phZcfqcifpQ4LJyqLCNXwtphaGvZQDgNoJJAmYTRMmYTxxjzTwWK7Z5aBJGK4B0XX9DMV6WpUrJGQgE2ENg6JCbEP8umdruP7PhYva6MTIM/AREenX2jPDAIRVE8Ajo0OwKR6XBsrD2+am8JWiPB76iYJUUGHJbo/aAxJrVwy63FumHqrSWHkOcTDW1/Fs/r8SoBWRYPVhKMVBpaROGqjEfWatQ2q7VnXmEIdvACPPaXdBb3o/8cmnVNK9w== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230035)(82310400021)(376009)(1800799019)(36860700008);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2024 06:52:06.1134 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9447d072-0613-40db-5e5a-08dc8c3e8134 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB52.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8958 X-LSpam-Score: -3.6 (---) X-LSpam-Report: No, score=-3.6 required=5.0 tests=ARC_SIGNED=0.001,ARC_VALID=-0.1,BAYES_00=-1.9,DKIMWL_WL_HIGH=-1,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,DMARC_PASS=-0.001,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,SPF_HELO_NONE=0.001,SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no |
Series |
[v4l-utils] utils: media-ctl: Install media-ctl header and library files
|
|
Commit Message
Gandhi, Neel
June 14, 2024, 6:51 a.m. UTC
Install mediactl and v4l2subdev header and library
files, which may be required by 3rd party applications
to populate and control v4l2subdev device node tree
Signed-off-by: Neel Gandhi <neel.gandhi@amd.com>
---
utils/media-ctl/meson.build | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
Comments
Hi Neel, Thank you for the patch. On Fri, Jun 14, 2024 at 12:21:20PM +0530, Neel Gandhi wrote: > Install mediactl and v4l2subdev header and library > files, which may be required by 3rd party applications > to populate and control v4l2subdev device node tree We haven't done so because the API of those libraries is currently internal, and not guaranteed to be stable. > Signed-off-by: Neel Gandhi <neel.gandhi@amd.com> > --- > utils/media-ctl/meson.build | 28 +++++++++++++++++++++------- > 1 file changed, 21 insertions(+), 7 deletions(-) > > diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build > index 3a7b0c9a..40669b4c 100644 > --- a/utils/media-ctl/meson.build > +++ b/utils/media-ctl/meson.build > @@ -3,14 +3,24 @@ libmediactl_sources = files( > 'mediactl-priv.h', > ) > > +libmediactl_api = files( > + 'mediactl.h', > + 'v4l2subdev.h', > +) > + > +install_headers(libmediactl_api, subdir: 'mediactl') > + > libmediactl_deps = [ > dep_libudev, > ] > > -libmediactl = static_library('mediactl', > - libmediactl_sources, > - dependencies : libmediactl_deps, > - include_directories : v4l2_utils_incdir) > +libmediactl = library('mediactl', > + libmediactl_sources, > + soversion: '0', > + version: '0.0.0', > + install : true, > + dependencies : libmediactl_deps, > + include_directories : v4l2_utils_incdir) > > dep_libmediactl = declare_dependency(link_with : libmediactl) > > @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') > libv4l2subdev_sources += media_bus_format_names_h > libv4l2subdev_sources += media_bus_format_codes_h > > -libv4l2subdev = static_library('v4l2subdev', > - libv4l2subdev_sources, > - include_directories : v4l2_utils_incdir) > +libv4l2subdev = library('v4l2subdev', > + libv4l2subdev_sources, > + soversion: '0', > + version: '0.0.0', > + install : true, > + dependencies : dep_libmediactl, > + include_directories : v4l2_utils_incdir) > > dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev) >
Hi Laurent, Thank you for your quick response. Please see my below inline response. > -----Original Message----- > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Sent: Friday, June 14, 2024 3:35 PM > To: Gandhi, Neel <neel.gandhi@amd.com> > Cc: linux-media@vger.kernel.org; hverkuil@xs4all.nl; sakari.ailus@iki.fi; Hatle, > Mark <mark.hatle@amd.com>; Allagadapa, Varunkumar > <varunkumar.allagadapa@amd.com>; Sagar, Vishal <vishal.sagar@amd.com> > Subject: Re: [v4l-utils] utils: media-ctl: Install media-ctl header and library files > > Hi Neel, > > Thank you for the patch. > > On Fri, Jun 14, 2024 at 12:21:20PM +0530, Neel Gandhi wrote: > > Install mediactl and v4l2subdev header and library files, which may be > > required by 3rd party applications to populate and control v4l2subdev > > device node tree > > We haven't done so because the API of those libraries is currently internal, and > not guaranteed to be stable. > So, if one's application is developed based on those libraries, then is there any alternative solution for it? As in the prior versions of v4l-utils package, those libraries are available to use but it was removed from v1.25+ onwards (from meson related changes in c2b91b9c3853b2cbcbe170a542864a3147d179ee commitID). We're using yocto scarthgap, which is using v1.26. > > Signed-off-by: Neel Gandhi <neel.gandhi@amd.com> > > --- > > utils/media-ctl/meson.build | 28 +++++++++++++++++++++------- > > 1 file changed, 21 insertions(+), 7 deletions(-) > > > > diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build > > index 3a7b0c9a..40669b4c 100644 > > --- a/utils/media-ctl/meson.build > > +++ b/utils/media-ctl/meson.build > > @@ -3,14 +3,24 @@ libmediactl_sources = files( > > 'mediactl-priv.h', > > ) > > > > +libmediactl_api = files( > > + 'mediactl.h', > > + 'v4l2subdev.h', > > +) > > + > > +install_headers(libmediactl_api, subdir: 'mediactl') > > + > > libmediactl_deps = [ > > dep_libudev, > > ] > > > > -libmediactl = static_library('mediactl', > > - libmediactl_sources, > > - dependencies : libmediactl_deps, > > - include_directories : v4l2_utils_incdir) > > +libmediactl = library('mediactl', > > + libmediactl_sources, > > + soversion: '0', > > + version: '0.0.0', > > + install : true, > > + dependencies : libmediactl_deps, > > + include_directories : v4l2_utils_incdir) > > > > dep_libmediactl = declare_dependency(link_with : libmediactl) > > > > @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') > > libv4l2subdev_sources += media_bus_format_names_h > > libv4l2subdev_sources += media_bus_format_codes_h > > > > -libv4l2subdev = static_library('v4l2subdev', > > - libv4l2subdev_sources, > > - include_directories : v4l2_utils_incdir) > > +libv4l2subdev = library('v4l2subdev', > > + libv4l2subdev_sources, > > + soversion: '0', > > + version: '0.0.0', > > + install : true, > > + dependencies : dep_libmediactl, > > + include_directories : v4l2_utils_incdir) > > > > dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev) > > > > -- > Regards, > > Laurent Pinchart Thanks & Regards, Neel Gandhi
Hi Neel, On Fri, Jun 14, 2024 at 01:07:24PM +0000, Gandhi, Neel wrote: > Hi Laurent, > > Thank you for your quick response. Please see my below inline response. > > On Friday, June 14, 2024 3:35 PM, Laurent Pinchart wrote: > > On Fri, Jun 14, 2024 at 12:21:20PM +0530, Neel Gandhi wrote: > > > Install mediactl and v4l2subdev header and library files, which may be > > > required by 3rd party applications to populate and control v4l2subdev > > > device node tree > > > > We haven't done so because the API of those libraries is currently internal, and > > not guaranteed to be stable. > > So, if one's application is developed based on those libraries, then > is there any alternative solution for it? Good question. I personally have no issue with applications using those libraries, as long as they don't expect a stable API. This means that any future version of v4l-utils may ship incompatible libraries, and that won't be considered as a regression, and won't be addressed. If we want to go that way, I think we should install static versions of the libraries only, as dynamic linking will really be asking for trouble. A better option, of course, would be to offer a stable API. That will require work, the current API will need to be reviewed and improved to make sure we can then extend it in a backward-compatible way whenever the kernel APIs get extended. It's not work that I could commit to, so we would need a volunteer for work on that and then maintain the libraries. Hans, Sakari, any opinion ? Neel, out of curiosity, what do you use those libraries for (if you can tell publicly) ? > As in the prior versions of v4l-utils package, those libraries are > available to use but it was removed from v1.25+ onwards (from meson > related changes in c2b91b9c3853b2cbcbe170a542864a3147d179ee commitID). > We're using yocto scarthgap, which is using v1.26. > > > > Signed-off-by: Neel Gandhi <neel.gandhi@amd.com> > > > --- > > > utils/media-ctl/meson.build | 28 +++++++++++++++++++++------- > > > 1 file changed, 21 insertions(+), 7 deletions(-) > > > > > > diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build > > > index 3a7b0c9a..40669b4c 100644 > > > --- a/utils/media-ctl/meson.build > > > +++ b/utils/media-ctl/meson.build > > > @@ -3,14 +3,24 @@ libmediactl_sources = files( > > > 'mediactl-priv.h', > > > ) > > > > > > +libmediactl_api = files( > > > + 'mediactl.h', > > > + 'v4l2subdev.h', > > > +) > > > + > > > +install_headers(libmediactl_api, subdir: 'mediactl') > > > + > > > libmediactl_deps = [ > > > dep_libudev, > > > ] > > > > > > -libmediactl = static_library('mediactl', > > > - libmediactl_sources, > > > - dependencies : libmediactl_deps, > > > - include_directories : v4l2_utils_incdir) > > > +libmediactl = library('mediactl', > > > + libmediactl_sources, > > > + soversion: '0', > > > + version: '0.0.0', > > > + install : true, > > > + dependencies : libmediactl_deps, > > > + include_directories : v4l2_utils_incdir) > > > > > > dep_libmediactl = declare_dependency(link_with : libmediactl) > > > > > > @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') > > > libv4l2subdev_sources += media_bus_format_names_h > > > libv4l2subdev_sources += media_bus_format_codes_h > > > > > > -libv4l2subdev = static_library('v4l2subdev', > > > - libv4l2subdev_sources, > > > - include_directories : v4l2_utils_incdir) > > > +libv4l2subdev = library('v4l2subdev', > > > + libv4l2subdev_sources, > > > + soversion: '0', > > > + version: '0.0.0', > > > + install : true, > > > + dependencies : dep_libmediactl, > > > + include_directories : v4l2_utils_incdir) > > > > > > dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev) > > >
Hi Laurent, On Sat, Jun 15, 2024 at 03:35:25AM +0300, Laurent Pinchart wrote: > Hi Neel, > > On Fri, Jun 14, 2024 at 01:07:24PM +0000, Gandhi, Neel wrote: > > Hi Laurent, > > > > Thank you for your quick response. Please see my below inline response. > > > > On Friday, June 14, 2024 3:35 PM, Laurent Pinchart wrote: > > > On Fri, Jun 14, 2024 at 12:21:20PM +0530, Neel Gandhi wrote: > > > > Install mediactl and v4l2subdev header and library files, which may be > > > > required by 3rd party applications to populate and control v4l2subdev > > > > device node tree > > > > > > We haven't done so because the API of those libraries is currently internal, and > > > not guaranteed to be stable. > > > > So, if one's application is developed based on those libraries, then > > is there any alternative solution for it? > > Good question. I personally have no issue with applications using those > libraries, as long as they don't expect a stable API. This means that > any future version of v4l-utils may ship incompatible libraries, and > that won't be considered as a regression, and won't be addressed. If we > want to go that way, I think we should install static versions of the > libraries only, as dynamic linking will really be asking for trouble. > > A better option, of course, would be to offer a stable API. That will > require work, the current API will need to be reviewed and improved to > make sure we can then extend it in a backward-compatible way whenever > the kernel APIs get extended. It's not work that I could commit to, so > we would need a volunteer for work on that and then maintain the > libraries. > > Hans, Sakari, any opinion ? Given it's been around for a decade without much changes, it wouldn't seem unreasonable to consider the API stable. A lot of projects copy the code in verbatim which makes fixing bugs very hard. :-( I think the API could be improved on and the library could use G_TOPOLOGY IOCTL. Neither has happened but these don't much affect the value of the librarisation. I've already proposed making this a proper library previously and I still believe it should be one. > > Neel, out of curiosity, what do you use those libraries for (if you can > tell publicly) ? > > > As in the prior versions of v4l-utils package, those libraries are > > available to use but it was removed from v1.25+ onwards (from meson > > related changes in c2b91b9c3853b2cbcbe170a542864a3147d179ee commitID). > > We're using yocto scarthgap, which is using v1.26. > > > > > > Signed-off-by: Neel Gandhi <neel.gandhi@amd.com> > > > > --- > > > > utils/media-ctl/meson.build | 28 +++++++++++++++++++++------- > > > > 1 file changed, 21 insertions(+), 7 deletions(-) > > > > > > > > diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build > > > > index 3a7b0c9a..40669b4c 100644 > > > > --- a/utils/media-ctl/meson.build > > > > +++ b/utils/media-ctl/meson.build > > > > @@ -3,14 +3,24 @@ libmediactl_sources = files( > > > > 'mediactl-priv.h', > > > > ) > > > > > > > > +libmediactl_api = files( > > > > + 'mediactl.h', > > > > + 'v4l2subdev.h', > > > > +) > > > > + > > > > +install_headers(libmediactl_api, subdir: 'mediactl') > > > > + > > > > libmediactl_deps = [ > > > > dep_libudev, > > > > ] > > > > > > > > -libmediactl = static_library('mediactl', > > > > - libmediactl_sources, > > > > - dependencies : libmediactl_deps, > > > > - include_directories : v4l2_utils_incdir) > > > > +libmediactl = library('mediactl', > > > > + libmediactl_sources, > > > > + soversion: '0', > > > > + version: '0.0.0', > > > > + install : true, > > > > + dependencies : libmediactl_deps, > > > > + include_directories : v4l2_utils_incdir) > > > > > > > > dep_libmediactl = declare_dependency(link_with : libmediactl) > > > > > > > > @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') > > > > libv4l2subdev_sources += media_bus_format_names_h > > > > libv4l2subdev_sources += media_bus_format_codes_h > > > > > > > > -libv4l2subdev = static_library('v4l2subdev', > > > > - libv4l2subdev_sources, > > > > - include_directories : v4l2_utils_incdir) > > > > +libv4l2subdev = library('v4l2subdev', > > > > + libv4l2subdev_sources, > > > > + soversion: '0', > > > > + version: '0.0.0', > > > > + install : true, > > > > + dependencies : dep_libmediactl, > > > > + include_directories : v4l2_utils_incdir) > > > > > > > > dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev) > > > > >
On 17/06/2024 09:51, sakari.ailus@iki.fi wrote: > Hi Laurent, > > On Sat, Jun 15, 2024 at 03:35:25AM +0300, Laurent Pinchart wrote: >> Hi Neel, >> >> On Fri, Jun 14, 2024 at 01:07:24PM +0000, Gandhi, Neel wrote: >>> Hi Laurent, >>> >>> Thank you for your quick response. Please see my below inline response. >>> >>> On Friday, June 14, 2024 3:35 PM, Laurent Pinchart wrote: >>>> On Fri, Jun 14, 2024 at 12:21:20PM +0530, Neel Gandhi wrote: >>>>> Install mediactl and v4l2subdev header and library files, which may be >>>>> required by 3rd party applications to populate and control v4l2subdev >>>>> device node tree >>>> >>>> We haven't done so because the API of those libraries is currently internal, and >>>> not guaranteed to be stable. >>> >>> So, if one's application is developed based on those libraries, then >>> is there any alternative solution for it? >> >> Good question. I personally have no issue with applications using those >> libraries, as long as they don't expect a stable API. This means that >> any future version of v4l-utils may ship incompatible libraries, and >> that won't be considered as a regression, and won't be addressed. If we >> want to go that way, I think we should install static versions of the >> libraries only, as dynamic linking will really be asking for trouble. >> >> A better option, of course, would be to offer a stable API. That will >> require work, the current API will need to be reviewed and improved to >> make sure we can then extend it in a backward-compatible way whenever >> the kernel APIs get extended. It's not work that I could commit to, so >> we would need a volunteer for work on that and then maintain the >> libraries. >> >> Hans, Sakari, any opinion ? > > Given it's been around for a decade without much changes, it wouldn't seem > unreasonable to consider the API stable. A lot of projects copy the code in > verbatim which makes fixing bugs very hard. :-( > > I think the API could be improved on and the library could use G_TOPOLOGY > IOCTL. Neither has happened but these don't much affect the value of the > librarisation. > > I've already proposed making this a proper library previously and I still > believe it should be one. I quickly looked at the API and I think it needs work before it is suitable for a generic library API. It is was never meant as a public API. Making it a proper library is a lot more work and needs someone to maintain it. I'm not maintaining this code, so it is not up to me, but for what it is worth, I would recommend against it. Regards, Hans > >> >> Neel, out of curiosity, what do you use those libraries for (if you can >> tell publicly) ? >> >>> As in the prior versions of v4l-utils package, those libraries are >>> available to use but it was removed from v1.25+ onwards (from meson >>> related changes in c2b91b9c3853b2cbcbe170a542864a3147d179ee commitID). >>> We're using yocto scarthgap, which is using v1.26. >>> >>>>> Signed-off-by: Neel Gandhi <neel.gandhi@amd.com> >>>>> --- >>>>> utils/media-ctl/meson.build | 28 +++++++++++++++++++++------- >>>>> 1 file changed, 21 insertions(+), 7 deletions(-) >>>>> >>>>> diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build >>>>> index 3a7b0c9a..40669b4c 100644 >>>>> --- a/utils/media-ctl/meson.build >>>>> +++ b/utils/media-ctl/meson.build >>>>> @@ -3,14 +3,24 @@ libmediactl_sources = files( >>>>> 'mediactl-priv.h', >>>>> ) >>>>> >>>>> +libmediactl_api = files( >>>>> + 'mediactl.h', >>>>> + 'v4l2subdev.h', >>>>> +) >>>>> + >>>>> +install_headers(libmediactl_api, subdir: 'mediactl') >>>>> + >>>>> libmediactl_deps = [ >>>>> dep_libudev, >>>>> ] >>>>> >>>>> -libmediactl = static_library('mediactl', >>>>> - libmediactl_sources, >>>>> - dependencies : libmediactl_deps, >>>>> - include_directories : v4l2_utils_incdir) >>>>> +libmediactl = library('mediactl', >>>>> + libmediactl_sources, >>>>> + soversion: '0', >>>>> + version: '0.0.0', >>>>> + install : true, >>>>> + dependencies : libmediactl_deps, >>>>> + include_directories : v4l2_utils_incdir) >>>>> >>>>> dep_libmediactl = declare_dependency(link_with : libmediactl) >>>>> >>>>> @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') >>>>> libv4l2subdev_sources += media_bus_format_names_h >>>>> libv4l2subdev_sources += media_bus_format_codes_h >>>>> >>>>> -libv4l2subdev = static_library('v4l2subdev', >>>>> - libv4l2subdev_sources, >>>>> - include_directories : v4l2_utils_incdir) >>>>> +libv4l2subdev = library('v4l2subdev', >>>>> + libv4l2subdev_sources, >>>>> + soversion: '0', >>>>> + version: '0.0.0', >>>>> + install : true, >>>>> + dependencies : dep_libmediactl, >>>>> + include_directories : v4l2_utils_incdir) >>>>> >>>>> dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev) >>>>> >> >
On Mon, Jun 17, 2024 at 07:51:52AM +0000, Sakari Ailus wrote: > On Sat, Jun 15, 2024 at 03:35:25AM +0300, Laurent Pinchart wrote: > > On Fri, Jun 14, 2024 at 01:07:24PM +0000, Gandhi, Neel wrote: > > > Hi Laurent, > > > > > > Thank you for your quick response. Please see my below inline response. > > > > > > On Friday, June 14, 2024 3:35 PM, Laurent Pinchart wrote: > > > > On Fri, Jun 14, 2024 at 12:21:20PM +0530, Neel Gandhi wrote: > > > > > Install mediactl and v4l2subdev header and library files, which may be > > > > > required by 3rd party applications to populate and control v4l2subdev > > > > > device node tree > > > > > > > > We haven't done so because the API of those libraries is currently internal, and > > > > not guaranteed to be stable. > > > > > > So, if one's application is developed based on those libraries, then > > > is there any alternative solution for it? > > > > Good question. I personally have no issue with applications using those > > libraries, as long as they don't expect a stable API. This means that > > any future version of v4l-utils may ship incompatible libraries, and > > that won't be considered as a regression, and won't be addressed. If we > > want to go that way, I think we should install static versions of the > > libraries only, as dynamic linking will really be asking for trouble. > > > > A better option, of course, would be to offer a stable API. That will > > require work, the current API will need to be reviewed and improved to > > make sure we can then extend it in a backward-compatible way whenever > > the kernel APIs get extended. It's not work that I could commit to, so > > we would need a volunteer for work on that and then maintain the > > libraries. > > > > Hans, Sakari, any opinion ? > > Given it's been around for a decade without much changes, it wouldn't seem > unreasonable to consider the API stable. A lot of projects copy the code in > verbatim which makes fixing bugs very hard. :-( Well, I've pushed API-breaking changes not later than last week :-) Having to preserve the API would have been annoying. > I think the API could be improved on and the library could use G_TOPOLOGY > IOCTL. Neither has happened but these don't much affect the value of the > librarisation. > > I've already proposed making this a proper library previously and I still > believe it should be one. I agree it would be nice. Someone would have to step up as a maintainer, and start by desining the API in a way to would allow for future extensions. > > Neel, out of curiosity, what do you use those libraries for (if you can > > tell publicly) ? > > > > > As in the prior versions of v4l-utils package, those libraries are > > > available to use but it was removed from v1.25+ onwards (from meson > > > related changes in c2b91b9c3853b2cbcbe170a542864a3147d179ee commitID). > > > We're using yocto scarthgap, which is using v1.26. > > > > > > > > Signed-off-by: Neel Gandhi <neel.gandhi@amd.com> > > > > > --- > > > > > utils/media-ctl/meson.build | 28 +++++++++++++++++++++------- > > > > > 1 file changed, 21 insertions(+), 7 deletions(-) > > > > > > > > > > diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build > > > > > index 3a7b0c9a..40669b4c 100644 > > > > > --- a/utils/media-ctl/meson.build > > > > > +++ b/utils/media-ctl/meson.build > > > > > @@ -3,14 +3,24 @@ libmediactl_sources = files( > > > > > 'mediactl-priv.h', > > > > > ) > > > > > > > > > > +libmediactl_api = files( > > > > > + 'mediactl.h', > > > > > + 'v4l2subdev.h', > > > > > +) > > > > > + > > > > > +install_headers(libmediactl_api, subdir: 'mediactl') > > > > > + > > > > > libmediactl_deps = [ > > > > > dep_libudev, > > > > > ] > > > > > > > > > > -libmediactl = static_library('mediactl', > > > > > - libmediactl_sources, > > > > > - dependencies : libmediactl_deps, > > > > > - include_directories : v4l2_utils_incdir) > > > > > +libmediactl = library('mediactl', > > > > > + libmediactl_sources, > > > > > + soversion: '0', > > > > > + version: '0.0.0', > > > > > + install : true, > > > > > + dependencies : libmediactl_deps, > > > > > + include_directories : v4l2_utils_incdir) > > > > > > > > > > dep_libmediactl = declare_dependency(link_with : libmediactl) > > > > > > > > > > @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') > > > > > libv4l2subdev_sources += media_bus_format_names_h > > > > > libv4l2subdev_sources += media_bus_format_codes_h > > > > > > > > > > -libv4l2subdev = static_library('v4l2subdev', > > > > > - libv4l2subdev_sources, > > > > > - include_directories : v4l2_utils_incdir) > > > > > +libv4l2subdev = library('v4l2subdev', > > > > > + libv4l2subdev_sources, > > > > > + soversion: '0', > > > > > + version: '0.0.0', > > > > > + install : true, > > > > > + dependencies : dep_libmediactl, > > > > > + include_directories : v4l2_utils_incdir) > > > > > > > > > > dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev) > > > > >
On Mon, Jun 17, 2024 at 10:38:39AM +0200, Hans Verkuil wrote: > On 17/06/2024 09:51, sakari.ailus@iki.fi wrote: > > On Sat, Jun 15, 2024 at 03:35:25AM +0300, Laurent Pinchart wrote: > >> On Fri, Jun 14, 2024 at 01:07:24PM +0000, Gandhi, Neel wrote: > >>> Hi Laurent, > >>> > >>> Thank you for your quick response. Please see my below inline response. > >>> > >>> On Friday, June 14, 2024 3:35 PM, Laurent Pinchart wrote: > >>>> On Fri, Jun 14, 2024 at 12:21:20PM +0530, Neel Gandhi wrote: > >>>>> Install mediactl and v4l2subdev header and library files, which may be > >>>>> required by 3rd party applications to populate and control v4l2subdev > >>>>> device node tree > >>>> > >>>> We haven't done so because the API of those libraries is currently internal, and > >>>> not guaranteed to be stable. > >>> > >>> So, if one's application is developed based on those libraries, then > >>> is there any alternative solution for it? > >> > >> Good question. I personally have no issue with applications using those > >> libraries, as long as they don't expect a stable API. This means that > >> any future version of v4l-utils may ship incompatible libraries, and > >> that won't be considered as a regression, and won't be addressed. If we > >> want to go that way, I think we should install static versions of the > >> libraries only, as dynamic linking will really be asking for trouble. > >> > >> A better option, of course, would be to offer a stable API. That will > >> require work, the current API will need to be reviewed and improved to > >> make sure we can then extend it in a backward-compatible way whenever > >> the kernel APIs get extended. It's not work that I could commit to, so > >> we would need a volunteer for work on that and then maintain the > >> libraries. > >> > >> Hans, Sakari, any opinion ? > > > > Given it's been around for a decade without much changes, it wouldn't seem > > unreasonable to consider the API stable. A lot of projects copy the code in > > verbatim which makes fixing bugs very hard. :-( > > > > I think the API could be improved on and the library could use G_TOPOLOGY > > IOCTL. Neither has happened but these don't much affect the value of the > > librarisation. > > > > I've already proposed making this a proper library previously and I still > > believe it should be one. > > I quickly looked at the API and I think it needs work before it is suitable > for a generic library API. It is was never meant as a public API. > > Making it a proper library is a lot more work and needs someone to maintain > it. I'm not maintaining this code, so it is not up to me, but for what it is > worth, I would recommend against it. I hack on that code occasionally when I need new features, but I'm not sure that makes me a maintainer. In any case, I won't have time to turn this into a public API in the near future. If someone wants to volunteer to do that work, I could at least try to review the proposals. > >> Neel, out of curiosity, what do you use those libraries for (if you can > >> tell publicly) ? > >> > >>> As in the prior versions of v4l-utils package, those libraries are > >>> available to use but it was removed from v1.25+ onwards (from meson > >>> related changes in c2b91b9c3853b2cbcbe170a542864a3147d179ee commitID). > >>> We're using yocto scarthgap, which is using v1.26. > >>> > >>>>> Signed-off-by: Neel Gandhi <neel.gandhi@amd.com> > >>>>> --- > >>>>> utils/media-ctl/meson.build | 28 +++++++++++++++++++++------- > >>>>> 1 file changed, 21 insertions(+), 7 deletions(-) > >>>>> > >>>>> diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build > >>>>> index 3a7b0c9a..40669b4c 100644 > >>>>> --- a/utils/media-ctl/meson.build > >>>>> +++ b/utils/media-ctl/meson.build > >>>>> @@ -3,14 +3,24 @@ libmediactl_sources = files( > >>>>> 'mediactl-priv.h', > >>>>> ) > >>>>> > >>>>> +libmediactl_api = files( > >>>>> + 'mediactl.h', > >>>>> + 'v4l2subdev.h', > >>>>> +) > >>>>> + > >>>>> +install_headers(libmediactl_api, subdir: 'mediactl') > >>>>> + > >>>>> libmediactl_deps = [ > >>>>> dep_libudev, > >>>>> ] > >>>>> > >>>>> -libmediactl = static_library('mediactl', > >>>>> - libmediactl_sources, > >>>>> - dependencies : libmediactl_deps, > >>>>> - include_directories : v4l2_utils_incdir) > >>>>> +libmediactl = library('mediactl', > >>>>> + libmediactl_sources, > >>>>> + soversion: '0', > >>>>> + version: '0.0.0', > >>>>> + install : true, > >>>>> + dependencies : libmediactl_deps, > >>>>> + include_directories : v4l2_utils_incdir) > >>>>> > >>>>> dep_libmediactl = declare_dependency(link_with : libmediactl) > >>>>> > >>>>> @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') > >>>>> libv4l2subdev_sources += media_bus_format_names_h > >>>>> libv4l2subdev_sources += media_bus_format_codes_h > >>>>> > >>>>> -libv4l2subdev = static_library('v4l2subdev', > >>>>> - libv4l2subdev_sources, > >>>>> - include_directories : v4l2_utils_incdir) > >>>>> +libv4l2subdev = library('v4l2subdev', > >>>>> + libv4l2subdev_sources, > >>>>> + soversion: '0', > >>>>> + version: '0.0.0', > >>>>> + install : true, > >>>>> + dependencies : dep_libmediactl, > >>>>> + include_directories : v4l2_utils_incdir) > >>>>> > >>>>> dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev) > >>>>>
diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build index 3a7b0c9a..40669b4c 100644 --- a/utils/media-ctl/meson.build +++ b/utils/media-ctl/meson.build @@ -3,14 +3,24 @@ libmediactl_sources = files( 'mediactl-priv.h', ) +libmediactl_api = files( + 'mediactl.h', + 'v4l2subdev.h', +) + +install_headers(libmediactl_api, subdir: 'mediactl') + libmediactl_deps = [ dep_libudev, ] -libmediactl = static_library('mediactl', - libmediactl_sources, - dependencies : libmediactl_deps, - include_directories : v4l2_utils_incdir) +libmediactl = library('mediactl', + libmediactl_sources, + soversion: '0', + version: '0.0.0', + install : true, + dependencies : libmediactl_deps, + include_directories : v4l2_utils_incdir) dep_libmediactl = declare_dependency(link_with : libmediactl) @@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c') libv4l2subdev_sources += media_bus_format_names_h libv4l2subdev_sources += media_bus_format_codes_h -libv4l2subdev = static_library('v4l2subdev', - libv4l2subdev_sources, - include_directories : v4l2_utils_incdir) +libv4l2subdev = library('v4l2subdev', + libv4l2subdev_sources, + soversion: '0', + version: '0.0.0', + install : true, + dependencies : dep_libmediactl, + include_directories : v4l2_utils_incdir) dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev)