[libcamera-devel] [PATCH] include: linux: Update v4l2-controls.h

Jacopo Mondi jacopo at jmondi.org
Tue May 19 14:50:50 CEST 2020


Update include/linux/v4l2-controls.h with the latest version from the
Linux kernel media tree master.

The most notable update is the definition of the V4L2_CID_ORIENTATION
control that replaces the downstream V4L2_CID_LOCATION.

The here copied version is not a 1-to-1 copy of the kernel exported
header , because of this conflicting definition

< /* The base for the bcm2835-isp driver controls.
<  * We reserve 16 controls for this driver. */
< #define V4L2_CID_USER_BCM2835_ISP_BASE		(V4L2_CID_USER_BASE + 0x10c0)
> /*
>  * The base for the atmel isc driver controls.
>  * We reserve 32 controls for this driver.
>  */
> #define V4L2_CID_USER_ATMEL_ISC_BASE		(V4L2_CID_USER_BASE + 0x10c0)

In order to keep the RPi pipeline working, keep the downstream
V4L2_CID_USER_BCM2835_ISP_BASE definition and post-pone the inclusion
of V4L2_CID_USER_ATMEL_ISC_BASE, which is not used by libcamera.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 include/linux/v4l2-controls.h | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h
index 171351aee6fc..ffa0d74dd195 100644
--- a/include/linux/v4l2-controls.h
+++ b/include/linux/v4l2-controls.h
@@ -469,6 +469,10 @@ enum v4l2_mpeg_video_h264_level {
 	V4L2_MPEG_VIDEO_H264_LEVEL_4_2	= 13,
 	V4L2_MPEG_VIDEO_H264_LEVEL_5_0	= 14,
 	V4L2_MPEG_VIDEO_H264_LEVEL_5_1	= 15,
+	V4L2_MPEG_VIDEO_H264_LEVEL_5_2	= 16,
+	V4L2_MPEG_VIDEO_H264_LEVEL_6_0	= 17,
+	V4L2_MPEG_VIDEO_H264_LEVEL_6_1	= 18,
+	V4L2_MPEG_VIDEO_H264_LEVEL_6_2	= 19,
 };
 #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA	(V4L2_CID_MPEG_BASE+360)
 #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA	(V4L2_CID_MPEG_BASE+361)
@@ -497,6 +501,7 @@ enum v4l2_mpeg_video_h264_profile {
 	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA	= 14,
 	V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH		= 15,
 	V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH		= 16,
+	V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH		= 17,
 };
 #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT	(V4L2_CID_MPEG_BASE+364)
 #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH	(V4L2_CID_MPEG_BASE+365)
@@ -914,22 +919,10 @@ enum v4l2_auto_focus_range {
 #define V4L2_CID_PAN_SPEED			(V4L2_CID_CAMERA_CLASS_BASE+32)
 #define V4L2_CID_TILT_SPEED			(V4L2_CID_CAMERA_CLASS_BASE+33)

-/*
- * This version of the v4l2-controls.h header part of the libcamera sources has
- * deviated from the version distributed by the mainline Linux kernel.
- *
- * Specifically, this version includes temporary definitions of a few custom
- * controls (V4L2_CID_CAMERA_SENSOR_ROTATION and
- * V4L2_CID_CAMERA_SENSOR_LOCATION) which have not yet made their way to
- * upstream Linux.
- *
- * When updating this header with a more recent version, make sure the new
- * version has those additional controls defined.
- */
-#define V4L2_CID_CAMERA_SENSOR_LOCATION		(V4L2_CID_CAMERA_CLASS_BASE+34)
-#define V4L2_LOCATION_FRONT			0
-#define V4L2_LOCATION_BACK			1
-#define V4L2_LOCATION_EXTERNAL			2
+#define V4L2_CID_CAMERA_ORIENTATION		(V4L2_CID_CAMERA_CLASS_BASE+34)
+#define V4L2_CAMERA_ORIENTATION_FRONT		0
+#define V4L2_CAMERA_ORIENTATION_BACK		1
+#define V4L2_CAMERA_ORIENTATION_EXTERNAL	2

 #define V4L2_CID_CAMERA_SENSOR_ROTATION		(V4L2_CID_CAMERA_CLASS_BASE+35)

@@ -1055,6 +1048,7 @@ enum v4l2_jpeg_chroma_subsampling {
 #define V4L2_CID_TEST_PATTERN_GREENR		(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
 #define V4L2_CID_TEST_PATTERN_BLUE		(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB		(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
+#define V4L2_CID_UNIT_CELL_SIZE			(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)


 /* Image processing controls */
--
2.26.2



More information about the libcamera-devel mailing list