mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
media: v4l2-ctrls: Add camera orientation and rotation
Add support for the newly defined V4L2_CID_CAMERA_ORIENTATION and V4L2_CID_CAMERA_SENSOR_ROTATION read-only controls used to report the camera device mounting position and orientation respectively. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
9926c22487
commit
926645d43f
2 changed files with 20 additions and 0 deletions
|
@ -583,6 +583,12 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
|||
"Annex B Start Code",
|
||||
NULL,
|
||||
};
|
||||
static const char * const camera_orientation[] = {
|
||||
"Front",
|
||||
"Back",
|
||||
"External",
|
||||
NULL,
|
||||
};
|
||||
|
||||
switch (id) {
|
||||
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
|
||||
|
@ -708,6 +714,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
|
|||
return hevc_decode_mode;
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_START_CODE:
|
||||
return hevc_start_code;
|
||||
case V4L2_CID_CAMERA_ORIENTATION:
|
||||
return camera_orientation;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1020,6 +1028,8 @@ const char *v4l2_ctrl_get_name(u32 id)
|
|||
case V4L2_CID_PAN_SPEED: return "Pan, Speed";
|
||||
case V4L2_CID_TILT_SPEED: return "Tilt, Speed";
|
||||
case V4L2_CID_UNIT_CELL_SIZE: return "Unit Cell Size";
|
||||
case V4L2_CID_CAMERA_ORIENTATION: return "Camera Orientation";
|
||||
case V4L2_CID_CAMERA_SENSOR_ROTATION: return "Camera Sensor Rotation";
|
||||
|
||||
/* FM Radio Modulator controls */
|
||||
/* Keep the order of the 'case's the same as in v4l2-controls.h! */
|
||||
|
@ -1293,6 +1303,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
|
|||
case V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_START_CODE:
|
||||
case V4L2_CID_CAMERA_ORIENTATION:
|
||||
*type = V4L2_CTRL_TYPE_MENU;
|
||||
break;
|
||||
case V4L2_CID_LINK_FREQ:
|
||||
|
@ -1482,6 +1493,8 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
|
|||
case V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT:
|
||||
case V4L2_CID_RDS_RX_TRAFFIC_PROGRAM:
|
||||
case V4L2_CID_RDS_RX_MUSIC_SPEECH:
|
||||
case V4L2_CID_CAMERA_ORIENTATION:
|
||||
case V4L2_CID_CAMERA_SENSOR_ROTATION:
|
||||
*flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
||||
break;
|
||||
case V4L2_CID_RF_TUNER_PLL_LOCK:
|
||||
|
|
|
@ -923,6 +923,13 @@ 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)
|
||||
|
||||
#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)
|
||||
|
||||
/* FM Modulator class control IDs */
|
||||
|
||||
#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
|
||||
|
|
Loading…
Reference in a new issue