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

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Jan 16 11:24:17 CET 2019


Hi Laurent,

On 16/01/2019 00:21, Laurent Pinchart wrote:
> Hi Kieran,
> 
> Thank you for the patch.
> 
> 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?

--
Kieran



> With this fixed,
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
> [snip]
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list