|  | /**************************************************************************** | 
|  | **************************************************************************** | 
|  | *** | 
|  | ***   This header was automatically generated from a Linux kernel header | 
|  | ***   of the same name, to make information necessary for userspace to | 
|  | ***   call into the kernel available to libc.  It contains only constants, | 
|  | ***   structures, and macros generated from the original header, and thus, | 
|  | ***   contains no copyrightable information. | 
|  | *** | 
|  | **************************************************************************** | 
|  | ****************************************************************************/ | 
|  | #ifndef _MSM_VENC_H_ | 
|  | #define _MSM_VENC_H_ | 
|  |  | 
|  | #include <linux/types.h> | 
|  |  | 
|  | struct venc_buf { | 
|  | unsigned int src_id; | 
|  | int fd; | 
|  | unsigned long offset; | 
|  | unsigned long size; | 
|  | }; | 
|  |  | 
|  | struct q6_init_config { | 
|  | unsigned short venc_standard; | 
|  | unsigned short partial_run_length_flag; | 
|  | unsigned short h263_annex_ispt; | 
|  | unsigned short h263_annex_jspt; | 
|  | unsigned short h263_annex_tspt; | 
|  | unsigned short rc_flag; | 
|  | unsigned short one_mv_flag; | 
|  | unsigned short acdc_pred_enable; | 
|  | unsigned short rounding_bit_ctrl; | 
|  | unsigned short rotation_flag; | 
|  | unsigned short max_mvx; | 
|  | unsigned short max_mvy; | 
|  | unsigned short enc_frame_height_inmb; | 
|  | unsigned short enc_frame_width_inmb; | 
|  | unsigned short dvs_frame_height; | 
|  | unsigned short dvs_frame_width; | 
|  |  | 
|  | unsigned int ref_frame_buf1_phy; | 
|  | unsigned int ref_frame_buf2_phy; | 
|  | unsigned int rlc_buf1_phy; | 
|  | unsigned int rlc_buf2_phy; | 
|  | unsigned int rlc_buf_length; | 
|  | }; | 
|  |  | 
|  | struct init_config { | 
|  | struct venc_buf ref_frame_buf1; | 
|  | struct venc_buf ref_frame_buf2; | 
|  | struct venc_buf rlc_buf1; | 
|  | struct venc_buf rlc_buf2; | 
|  | struct q6_init_config q6_init_config; | 
|  | }; | 
|  |  | 
|  | struct q6_encode_param { | 
|  | unsigned int luma_addr; | 
|  | unsigned int chroma_addr; | 
|  | unsigned int x_offset; | 
|  | unsigned int y_offset; | 
|  | unsigned int frame_rho_budget; | 
|  | unsigned int frame_type; | 
|  | unsigned int qp; | 
|  | }; | 
|  |  | 
|  | struct encode_param { | 
|  | struct venc_buf y_addr; | 
|  | unsigned long uv_offset; | 
|  | struct q6_encode_param q6_encode_param; | 
|  | }; | 
|  |  | 
|  | struct intra_refresh { | 
|  | unsigned int intra_refresh_enable; | 
|  | unsigned int intra_mb_num; | 
|  | }; | 
|  |  | 
|  | struct rc_config { | 
|  | unsigned short max_frame_qp_up_delta; | 
|  | unsigned short max_frame_qp_down_delta; | 
|  | unsigned short min_frame_qp; | 
|  | unsigned short max_frame_qp; | 
|  | }; | 
|  |  | 
|  | struct q6_frame_type { | 
|  | unsigned int frame_type; | 
|  | unsigned int frame_len; | 
|  | unsigned int frame_addr; | 
|  | unsigned int map_table; | 
|  | }; | 
|  |  | 
|  | struct frame_type { | 
|  | struct venc_buf frame_addr; | 
|  | struct q6_frame_type q6_frame_type; | 
|  | }; | 
|  |  | 
|  | #define VENC_IOCTL_MAGIC 'V' | 
|  |  | 
|  | #define VENC_IOCTL_INITIALIZE _IOW(VENC_IOCTL_MAGIC, 1, struct init_config) | 
|  | #define VENC_IOCTL_ENCODE _IOW(VENC_IOCTL_MAGIC, 2, struct encode_param) | 
|  | #define VENC_IOCTL_INTRA_REFRESH _IOW(VENC_IOCTL_MAGIC, 3, struct intra_refresh) | 
|  | #define VENC_IOCTL_RC_CONFIG _IOW(VENC_IOCTL_MAGIC, 4, struct rc_config) | 
|  | #define VENC_IOCTL_ENCODE_CONFIG _IOW(VENC_IOCTL_MAGIC, 5, struct init_config) | 
|  | #define VENC_IOCTL_STOP _IO(VENC_IOCTL_MAGIC, 6) | 
|  | #define VENC_IOCTL_WAIT_FOR_ENCODE _IOR(VENC_IOCTL_MAGIC, 7, struct frame_type) | 
|  | #define VENC_IOCTL_STOP_ENCODE _IO(VENC_IOCTL_MAGIC, 8) | 
|  |  | 
|  | #endif | 
|  |  |