• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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