1 #ifndef __UAPI_MSM_FD__ 2 #define __UAPI_MSM_FD__ 3 4 #include <linux/videodev2.h> 5 #include <linux/types.h> 6 7 /* 8 * struct msm_fd_event - Structure contain event info. 9 * @buf_index: Buffer index. 10 * @frame_id: Frame id. 11 * @face_cnt: Detected faces. 12 */ 13 struct msm_fd_event { 14 __u32 buf_index; 15 __u32 frame_id; 16 __u32 face_cnt; 17 }; 18 19 /* 20 * enum msm_fd_pose - Face pose. 21 */ 22 enum msm_fd_pose { 23 MSM_FD_POSE_FRONT, 24 MSM_FD_POSE_RIGHT_DIAGONAL, 25 MSM_FD_POSE_RIGHT, 26 MSM_FD_POSE_LEFT_DIAGONAL, 27 MSM_FD_POSE_LEFT, 28 }; 29 30 /* 31 * struct msm_fd_face_data - Structure contain detected face data. 32 * @pose: refer to enum msm_fd_pose. 33 * @angle: Face angle 34 * @confidence: Face confidence level. 35 * @reserved: Reserved data for future use. 36 * @face: Face rectangle. 37 */ 38 struct msm_fd_face_data { 39 __u32 pose; 40 __u32 angle; 41 __u32 confidence; 42 __u32 reserved; 43 struct v4l2_rect face; 44 }; 45 46 /* 47 * struct msm_fd_result - Structure contain detected faces result. 48 * @frame_id: Frame id of requested result. 49 * @face_cnt: Number of result faces, driver can modify this value (to smaller) 50 * @face_data: Pointer to array of face data structures. 51 * Array size should not be smaller then face_cnt. 52 */ 53 struct msm_fd_result { 54 __u32 frame_id; 55 __u32 face_cnt; 56 struct msm_fd_face_data __user *face_data; 57 }; 58 59 /* MSM FD private ioctl ID */ 60 #define VIDIOC_MSM_FD_GET_RESULT \ 61 _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_fd_result) 62 63 /* MSM FD event ID */ 64 #define MSM_EVENT_FD (V4L2_EVENT_PRIVATE_START) 65 66 /* MSM FD control ID's */ 67 #define V4L2_CID_FD_SPEED (V4L2_CID_PRIVATE_BASE) 68 #define V4L2_CID_FD_FACE_ANGLE (V4L2_CID_PRIVATE_BASE + 1) 69 #define V4L2_CID_FD_MIN_FACE_SIZE (V4L2_CID_PRIVATE_BASE + 2) 70 #define V4L2_CID_FD_FACE_DIRECTION (V4L2_CID_PRIVATE_BASE + 3) 71 #define V4L2_CID_FD_DETECTION_THRESHOLD (V4L2_CID_PRIVATE_BASE + 4) 72 #define V4L2_CID_FD_WORK_MEMORY_SIZE (V4L2_CID_PRIVATE_BASE + 5) 73 #define V4L2_CID_FD_WORK_MEMORY_FD (V4L2_CID_PRIVATE_BASE + 6) 74 75 #endif 76 77