Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _MSM_VENC_H_
     13 #define _MSM_VENC_H_
     14 
     15 #include <linux/types.h>
     16 
     17 struct venc_buf {
     18  unsigned int src_id;
     19  int fd;
     20  unsigned long offset;
     21  unsigned long size;
     22 };
     23 
     24 struct q6_init_config {
     25  unsigned short venc_standard;
     26  unsigned short partial_run_length_flag;
     27  unsigned short h263_annex_ispt;
     28  unsigned short h263_annex_jspt;
     29  unsigned short h263_annex_tspt;
     30  unsigned short rc_flag;
     31  unsigned short one_mv_flag;
     32  unsigned short acdc_pred_enable;
     33  unsigned short rounding_bit_ctrl;
     34  unsigned short rotation_flag;
     35  unsigned short max_mvx;
     36  unsigned short max_mvy;
     37  unsigned short enc_frame_height_inmb;
     38  unsigned short enc_frame_width_inmb;
     39  unsigned short dvs_frame_height;
     40  unsigned short dvs_frame_width;
     41 
     42  unsigned int ref_frame_buf1_phy;
     43  unsigned int ref_frame_buf2_phy;
     44  unsigned int rlc_buf1_phy;
     45  unsigned int rlc_buf2_phy;
     46  unsigned int rlc_buf_length;
     47 };
     48 
     49 struct init_config {
     50  struct venc_buf ref_frame_buf1;
     51  struct venc_buf ref_frame_buf2;
     52  struct venc_buf rlc_buf1;
     53  struct venc_buf rlc_buf2;
     54  struct q6_init_config q6_init_config;
     55 };
     56 
     57 struct q6_encode_param {
     58  unsigned int luma_addr;
     59  unsigned int chroma_addr;
     60  unsigned int x_offset;
     61  unsigned int y_offset;
     62  unsigned int frame_rho_budget;
     63  unsigned int frame_type;
     64  unsigned int qp;
     65 };
     66 
     67 struct encode_param {
     68  struct venc_buf y_addr;
     69  unsigned long uv_offset;
     70  struct q6_encode_param q6_encode_param;
     71 };
     72 
     73 struct intra_refresh {
     74  unsigned int intra_refresh_enable;
     75  unsigned int intra_mb_num;
     76 };
     77 
     78 struct rc_config {
     79  unsigned short max_frame_qp_up_delta;
     80  unsigned short max_frame_qp_down_delta;
     81  unsigned short min_frame_qp;
     82  unsigned short max_frame_qp;
     83 };
     84 
     85 struct q6_frame_type {
     86  unsigned int frame_type;
     87  unsigned int frame_len;
     88  unsigned int frame_addr;
     89  unsigned int map_table;
     90 };
     91 
     92 struct frame_type {
     93  struct venc_buf frame_addr;
     94  struct q6_frame_type q6_frame_type;
     95 };
     96 
     97 #define VENC_IOCTL_MAGIC 'V'
     98 
     99 #define VENC_IOCTL_INITIALIZE _IOW(VENC_IOCTL_MAGIC, 1, struct init_config)
    100 #define VENC_IOCTL_ENCODE _IOW(VENC_IOCTL_MAGIC, 2, struct encode_param)
    101 #define VENC_IOCTL_INTRA_REFRESH _IOW(VENC_IOCTL_MAGIC, 3, struct intra_refresh)
    102 #define VENC_IOCTL_RC_CONFIG _IOW(VENC_IOCTL_MAGIC, 4, struct rc_config)
    103 #define VENC_IOCTL_ENCODE_CONFIG _IOW(VENC_IOCTL_MAGIC, 5, struct init_config)
    104 #define VENC_IOCTL_STOP _IO(VENC_IOCTL_MAGIC, 6)
    105 #define VENC_IOCTL_WAIT_FOR_ENCODE _IOR(VENC_IOCTL_MAGIC, 7, struct frame_type)
    106 #define VENC_IOCTL_STOP_ENCODE _IO(VENC_IOCTL_MAGIC, 8)
    107 
    108 #endif
    109 
    110