[libcamera-devel] [PATCH v3 1/3] include: linux: Import videodev2.h from Linux v4.19

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jan 16 16:20:05 CET 2019


Hello,

On Wed, Jan 16, 2019 at 03:25:38PM +0100, Niklas Söderlund wrote:
> On 2019-01-16 10:24:17 +0000, Kieran Bingham wrote:
> > On 16/01/2019 00:21, Laurent Pinchart wrote:
> > > On Tue, Jan 15, 2019 at 11:19:07PM +0000, Kieran Bingham wrote:
> > >> Import the linux/videodev2.h from the installed linux kernel headers.
> > >>
> > >> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > >> ---
> > >>  include/linux/videodev2.h | 2412 +++++++++++++++++++++++++++++++++++++
> > >>  1 file changed, 2412 insertions(+)
> > >>  create mode 100644 include/linux/videodev2.h
> > >>
> > >> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> > >> new file mode 100644
> > >> index 000000000000..1a95662f5ad0
> > >> --- /dev/null
> > >> +++ b/include/linux/videodev2.h
> > >> @@ -0,0 +1,2412 @@
> > >> +/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */
> > >> +/*
> > >> + *  Video for Linux Two header file
> > >> + *
> > >> + *  Copyright (C) 1999-2012 the contributors
> > >> + *
> > >> + *  This program is free software; you can redistribute it and/or modify
> > >> + *  it under the terms of the GNU General Public License as published by
> > >> + *  the Free Software Foundation; either version 2 of the License, or
> > >> + *  (at your option) any later version.
> > >> + *
> > >> + *  This program is distributed in the hope that it will be useful,
> > >> + *  but WITHOUT ANY WARRANTY; without even the implied warranty of
> > >> + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > >> + *  GNU General Public License for more details.
> > >> + *
> > >> + *  Alternatively you can redistribute this file under the terms of the
> > >> + *  BSD license as stated below:
> > >> + *
> > >> + *  Redistribution and use in source and binary forms, with or without
> > >> + *  modification, are permitted provided that the following conditions
> > >> + *  are met:
> > >> + *  1. Redistributions of source code must retain the above copyright
> > >> + *     notice, this list of conditions and the following disclaimer.
> > >> + *  2. Redistributions in binary form must reproduce the above copyright
> > >> + *     notice, this list of conditions and the following disclaimer in
> > >> + *     the documentation and/or other materials provided with the
> > >> + *     distribution.
> > >> + *  3. The names of its contributors may not be used to endorse or promote
> > >> + *     products derived from this software without specific prior written
> > >> + *     permission.
> > >> + *
> > >> + *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> > >> + *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> > >> + *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> > >> + *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> > >> + *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > >> + *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
> > >> + *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
> > >> + *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
> > >> + *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
> > >> + *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
> > >> + *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> > >> + *
> > >> + *	Header file for v4l or V4L2 drivers and applications
> > >> + * with public API.
> > >> + * All kernel-specific stuff were moved to media/v4l2-dev.h, so
> > >> + * no #if __KERNEL tests are allowed here
> > >> + *
> > >> + *	See https://linuxtv.org for more info
> > >> + *
> > >> + *	Author: Bill Dirks <bill at thedirks.org>
> > >> + *		Justin Schoeman
> > >> + *              Hans Verkuil <hverkuil at xs4all.nl>
> > >> + *		et al.
> > >> + */
> > >> +#ifndef __LINUX_VIDEODEV2_H
> > >> +#define __LINUX_VIDEODEV2_H
> > >> +
> > >> +#include <sys/time.h>
> > >> +
> > >> +#include <linux/ioctl.h>
> > >> +#include <linux/types.h>
> > >> +#include <linux/v4l2-common.h>
> > >> +#include <linux/v4l2-controls.h>
> > > 
> > > I would recommend importing v4l2-common.h and v4l2-controls.h as well to
> > > make sure the V4L2 API stays consistent.
> > 
> > I still really dislike keeping kernel headers in the project - but if
> > it's the best route - how about we keep a set of all the V4L2 headers ?
> > 
> > We already have media.h, (and now videodev2.h)
> > Perhaps we should in one hit import :
> > 
> >   v4l2-common.h    v4l2-controls.h  v4l2-dv-timings.h
> >   v4l2-mediabus.h  v4l2-subdev.h    media-bus-format.h
> > 
> > as well ?
> > 
> > If we have to keep a copy of the V4L2(well linux-media) API definitions
> > - I'd rather have a full complete version synchronised set, which is
> > updated together whenever it gets updated.
> > 
> > Any immediate objections?
> 
> My personal view is that we should add headers as we need them but I 
> have no objection to adding all of them if that is the consensus.

That's my opinion too, but I won't object against adding headers we
don't use now but know we will use in the future. I would leave
v4l2-dv-timings.h out as I don't think we'll need it, the other ones can
be added.

> With or without additional headers,
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> 
> > > With this fixed,
> > > 
> > > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > 
> > > [snip]

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list