Home | History | Annotate | Download | only in media
      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