From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
Nicolas Dufresne <nicolas@ndufresne.ca>,
LMML <linux-media@vger.kernel.org>,
Wim Taymans <wtaymans@redhat.com>,
schaller@redhat.com
Subject: Re: [ANN] Meeting to discuss improvements to support MC-based cameras on generic apps
Date: Wed, 23 May 2018 22:35:33 +0300 [thread overview]
Message-ID: <5437926.TNfTU9E2g4@avalon> (raw)
In-Reply-To: <727fc55e-970c-53c3-f286-f7e7c1035184@xs4all.nl>
Hi Hans,
On Wednesday, 23 May 2018 19:19:37 EEST Hans Verkuil wrote:
> On 18/05/18 13:24, Mauro Carvalho Chehab wrote:
> > One of the biggest reasons why we decided to start libv4l project,
> > in the past, was to ensure an open source solution. The problem we
> > faced on that time is to ensure that, when a new media driver were
> > added with some proprietary output format, an open source decoding
> > software were also added at libv4l.
> >
> > This approach ensured that all non-MC cameras are supported by all
> > V4L2 applications.
> >
> > Before libv4l, media support for a given device were limited to a few
> > apps that knew how to decode the format. There were even cases were a
> > proprietary app were required, as no open source decoders were available.
> >
> > From my PoV, the biggest gain with libv4l is that the same group of
> > maintainers can ensure that the entire solution (Kernel driver and
> > low level userspace support) will provide everything required for an
> > open source app to work with it.
> >
> > I'm not sure how we would keep enforcing it if the pipeline setting
> > and control propagation logic for an specific hardware will be
> > delegated to PipeWire. It seems easier to keep doing it on a libv4l
> > (version 2) and let PipeWire to use it.
>
> I've decided not to attend this meeting. It is not quite my core expertise
> and it is a bit too far to make it worth my time. If there are good reasons
> for me being there that I missed, then please let me know asap and I might
> reconsider this.
>
> What I would like to say though it that I think libv4l is a bit of a dead
> end and probably not suitable for adding support for this.
>
> Currently libv4l2 is too intertwined with libv4lconvert and too messy.
> Its original motivation was for converting custom formats and that is
> mostly obsolete now that UVC has standardized formats to just a few.
>
> I think a core library is needed that provides the basic functionality
> and that can be used directly by applications if they don't want to use
> v4l2_open() and friends.
>
> I.e. it should be possible for e.g. gstreamer to use this core library
> to easily configure and use the MC instead of having to call v4l2_open()
> etc. and rely on magic code to do this for them. It's simply ugly to
> overload mmap with v4l2_mmap or to emulate read() if the driver doesn't
> support it.
>
> We might still have a libv4l2-like library sitting on top of this, but
> perhaps with limited functionality. For example, I think it would be
> reasonable to no longer support custom formats. If an application wants
> to support that, then it should call conversion functions for the core
> library explicitly. This has the big advantage of solving the dmabuf
> and mmap issues in today's libv4l2.
I agree with all that. I also believe we need to design a clean solution
without caring about the existing libv4l2 API, and then implement a
compatibility layer on top of our new library. The way to move away from the
stone age is to design a new technology for the future, and then help the past
climb on the bandwagon.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2018-05-23 19:35 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-17 19:07 [ANN] Meeting to discuss improvements to support MC-based cameras on generic apps Mauro Carvalho Chehab
2018-05-17 21:38 ` Nicolas Dufresne
2018-05-18 8:15 ` Laurent Pinchart
2018-05-18 11:24 ` Mauro Carvalho Chehab
2018-05-18 12:38 ` Laurent Pinchart
2018-05-18 15:15 ` Nicolas Dufresne
2018-05-18 15:41 ` Tomasz Figa
2018-05-19 5:17 ` Laurent Pinchart
2018-05-23 16:19 ` Hans Verkuil
2018-05-23 19:35 ` Laurent Pinchart [this message]
2018-05-18 14:22 ` Nicolas Dufresne
2018-05-18 15:19 ` Laurent Pinchart
2018-05-18 12:27 ` Laurent Pinchart
2018-05-18 15:05 ` Mauro Carvalho Chehab
2018-05-18 15:31 ` Laurent Pinchart
2018-05-18 15:37 ` Dave Stevenson
2018-05-18 18:23 ` Nicolas Dufresne
2018-05-19 7:04 ` Laurent Pinchart
2018-05-21 12:16 ` Dave Stevenson
2018-05-21 13:04 ` Laurent Pinchart
2018-05-18 15:37 ` Tomasz Figa
2018-05-25 2:40 ` Zheng, Jian Xu
2018-06-13 14:36 ` Sakari Ailus
2018-06-14 1:06 ` Tomasz Figa
2018-05-28 13:43 ` Mauro Carvalho Chehab
2018-05-28 14:21 ` Niklas Söderlund
2018-05-31 13:22 ` Mauro Carvalho Chehab
2018-05-31 13:46 ` Kieran Bingham
2018-05-31 13:54 ` Laurent Pinchart
2018-05-31 13:58 ` Hans Verkuil
2018-05-31 14:18 ` Tomasz Figa
2018-05-31 15:15 ` Mauro Carvalho Chehab
2018-05-31 14:19 ` Hans Verkuil
2018-06-01 7:31 ` Javier Martinez Canillas
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=5437926.TNfTU9E2g4@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=hverkuil@xs4all.nl \
--cc=linux-media@vger.kernel.org \
--cc=mchehab+samsung@kernel.org \
--cc=nicolas@ndufresne.ca \
--cc=schaller@redhat.com \
--cc=wtaymans@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.