From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: "sakari.ailus@iki.fi" <sakari.ailus@iki.fi>
Cc: "Gandhi, Neel" <neel.gandhi@amd.com>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"hverkuil@xs4all.nl" <hverkuil@xs4all.nl>,
"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
Date: Mon, 17 Jun 2024 12:07:02 +0300 [thread overview]
Message-ID: <20240617090702.GG30324@pendragon.ideasonboard.com> (raw)
In-Reply-To: <Zm_rGLHKsPQjzLho@valkosipuli.retiisi.eu>
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)
> > > > >
--
Regards,
Laurent Pinchart
prev parent reply other threads:[~2024-06-17 9:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-14 6:51 [v4l-utils] utils: media-ctl: Install media-ctl header and library files Neel Gandhi
2024-06-14 10:04 ` Laurent Pinchart
2024-06-14 13:07 ` Gandhi, Neel
2024-06-15 0:35 ` Laurent Pinchart
2024-06-17 7:51 ` sakari.ailus
2024-06-17 8:38 ` Hans Verkuil
2024-06-17 9:08 ` Laurent Pinchart
2024-06-17 9:07 ` Laurent Pinchart [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240617090702.GG30324@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=hverkuil@xs4all.nl \
--cc=linux-media@vger.kernel.org \
--cc=mark.hatle@amd.com \
--cc=neel.gandhi@amd.com \
--cc=sakari.ailus@iki.fi \
--cc=varunkumar.allagadapa@amd.com \
--cc=vishal.sagar@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox