1731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#ifndef _UAPI_MSM_VIDC_ENC_H_
2731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#define _UAPI_MSM_VIDC_ENC_H_
3cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
4cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#include <linux/types.h>
5cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#include <linux/ioctl.h>
6cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
7cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/** STATUS CODES*/
8cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/* Base value for status codes */
9cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_BASE	0x00000000
10cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_SUCCESS	(VEN_S_BASE)/* Success */
11cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EFAIL	(VEN_S_BASE+1)/* General failure */
12cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EFATAL	(VEN_S_BASE+2)/* Fatal irrecoverable failure*/
13cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EBADPARAM	(VEN_S_BASE+3)/* Error passed parameters*/
14cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Command called in invalid state*/
15cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EINVALSTATE	(VEN_S_BASE+4)
16cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ENOSWRES	(VEN_S_BASE+5)/* Insufficient OS resources*/
17cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ENOHWRES	(VEN_S_BASE+6)/*Insufficient HW resources */
18cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EBUFFREQ	(VEN_S_BASE+7)/* Buffer requirements were not met*/
19cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EINVALCMD	(VEN_S_BASE+8)/* Invalid command called */
20cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ETIMEOUT	(VEN_S_BASE+9)/* Command timeout. */
21cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Re-attempt was made when multiple invocation not supported for API.*/
22cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ENOREATMPT	(VEN_S_BASE+10)
23cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ENOPREREQ	(VEN_S_BASE+11)/*Pre-requirement is not met for API*/
24cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ECMDQFULL	(VEN_S_BASE+12)/*Command queue is full*/
25cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ENOTSUPP	(VEN_S_BASE+13)/*Command not supported*/
26cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ENOTIMPL	(VEN_S_BASE+14)/*Command not implemented.*/
27cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ENOTPMEM	(VEN_S_BASE+15)/*Buffer is not from PMEM*/
28cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EFLUSHED	(VEN_S_BASE+16)/*returned buffer was flushed*/
29cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EINSUFBUF	(VEN_S_BASE+17)/*provided buffer size insufficient*/
30cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_ESAMESTATE	(VEN_S_BASE+18)
31cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_S_EINVALTRANS	(VEN_S_BASE+19)
32cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
33cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_INTF_VER			 1
34cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
35cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Asynchronous messages from driver*/
36cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_INDICATION	0
37cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_INPUT_BUFFER_DONE	1
38cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_OUTPUT_BUFFER_DONE	2
39cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_NEED_OUTPUT_BUFFER	3
40cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_FLUSH_INPUT_DONE	4
41cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_FLUSH_OUPUT_DONE	5
42cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_START	6
43cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_STOP	7
44cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_PAUSE	8
45cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_RESUME	9
46cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_STOP_READING_MSG	10
47cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSG_LTRUSE_FAILED	    11
48731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#define VEN_MSG_HW_OVERLOAD	12
49731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#define VEN_MSG_MAX_CLIENTS	13
50cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
51cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
52cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Buffer flags bits masks*/
53cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_BUFFLAG_EOS	0x00000001
54cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_BUFFLAG_ENDOFFRAME	0x00000010
55cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_BUFFLAG_SYNCFRAME	0x00000020
56cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_BUFFLAG_EXTRADATA	0x00000040
57cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_BUFFLAG_CODECCONFIG	0x00000080
58cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
59cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Post processing flags bit masks*/
60cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_EXTRADATA_NONE          0x001
61cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_EXTRADATA_QCOMFILLER    0x002
62cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_EXTRADATA_SLICEINFO     0x100
63cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_EXTRADATA_LTRINFO       0x200
64cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_EXTRADATA_MBINFO        0x400
65cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
66cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*ENCODER CONFIGURATION CONSTANTS*/
67cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
68cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Encoded video frame types*/
69cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_FRAME_TYPE_I	1/* I frame type */
70cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_FRAME_TYPE_P	2/* P frame type */
71cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_FRAME_TYPE_B	3/* B frame type */
72cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
73cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Video codec types*/
74cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_CODEC_MPEG4	1/* MPEG4 Codec */
75cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_CODEC_H264	2/* H.264 Codec */
76cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_CODEC_H263	3/* H.263 Codec */
77cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
78cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Video codec profile types.*/
79cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_PROFILE_MPEG4_SP      1/* 1 - MPEG4 SP profile      */
80cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_PROFILE_MPEG4_ASP     2/* 2 - MPEG4 ASP profile     */
81cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_PROFILE_H264_BASELINE 3/* 3 - H264 Baseline profile	*/
82cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_PROFILE_H264_MAIN     4/* 4 - H264 Main profile     */
83cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_PROFILE_H264_HIGH     5/* 5 - H264 High profile     */
84cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_PROFILE_H263_BASELINE 6/* 6 - H263 Baseline profile */
85cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
86cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Video codec profile level types.*/
87cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_0	 0x1/* MPEG4 Level 0  */
88cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_1	 0x2/* MPEG4 Level 1  */
89cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_2	 0x3/* MPEG4 Level 2  */
90cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_3	 0x4/* MPEG4 Level 3  */
91cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_4	 0x5/* MPEG4 Level 4  */
92cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_5	 0x6/* MPEG4 Level 5  */
93cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_3b	 0x7/* MPEG4 Level 3b */
94cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_MPEG4_6	 0x8/* MPEG4 Level 6  */
95cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
96cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_1	 0x9/* H.264 Level 1   */
97cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_1b        0xA/* H.264 Level 1b  */
98cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_1p1	 0xB/* H.264 Level 1.1 */
99cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_1p2	 0xC/* H.264 Level 1.2 */
100cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_1p3	 0xD/* H.264 Level 1.3 */
101cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_2	 0xE/* H.264 Level 2   */
102cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_2p1	 0xF/* H.264 Level 2.1 */
103cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_2p2	0x10/* H.264 Level 2.2 */
104cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_3	0x11/* H.264 Level 3   */
105cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_3p1	0x12/* H.264 Level 3.1 */
106cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_3p2	0x13/* H.264 Level 3.2 */
107cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H264_4	0x14/* H.264 Level 4   */
108cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
109cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_10	0x15/* H.263 Level 10  */
110cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_20	0x16/* H.263 Level 20  */
111cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_30	0x17/* H.263 Level 30  */
112cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_40	0x18/* H.263 Level 40  */
113cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_45	0x19/* H.263 Level 45  */
114cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_50	0x1A/* H.263 Level 50  */
115cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_60	0x1B/* H.263 Level 60  */
116cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_LEVEL_H263_70	0x1C/* H.263 Level 70  */
117cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
118cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Entropy coding model selection for H.264 encoder.*/
119cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_ENTROPY_MODEL_CAVLC	1
120cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_ENTROPY_MODEL_CABAC	2
121cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Cabac model number (0,1,2) for encoder.*/
122cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_CABAC_MODEL_0	1/* CABAC Model 0. */
123cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_CABAC_MODEL_1	2/* CABAC Model 1. */
124cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_CABAC_MODEL_2	3/* CABAC Model 2. */
125cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
126cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Deblocking filter control type for encoder.*/
127cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_DB_DISABLE	1/* 1 - Disable deblocking filter*/
128cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_DB_ALL_BLKG_BNDRY	2/* 2 - All blocking boundary filtering*/
129cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_DB_SKIP_SLICE_BNDRY	3/* 3 - Filtering except sliceboundary*/
130cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
131cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Different methods of Multi slice selection.*/
132cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSLICE_OFF	1
133cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSLICE_CNT_MB	2 /*number of MBscount per slice*/
134cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSLICE_CNT_BYTE	3 /*number of bytes count per slice.*/
135cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_MSLICE_GOB	4 /*Multi slice by GOB for H.263 only.*/
136cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
137cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Different modes for Rate Control.*/
138cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_RC_OFF	1
139cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_RC_VBR_VFR	2
140cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_RC_VBR_CFR	3
141cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_RC_CBR_VFR	4
142cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_RC_CBR_CFR	5
143cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
144cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Different modes for flushing buffers*/
145cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_FLUSH_INPUT	1
146cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_FLUSH_OUTPUT	2
147cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_FLUSH_ALL	3
148cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
149cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Different input formats for YUV data.*/
150cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_INPUTFMT_NV12	1/* NV12 Linear */
151cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_INPUTFMT_NV21	2/* NV21 Linear */
152cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_INPUTFMT_NV12_16M2KA	3/* NV12 Linear */
153cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
154cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Different allowed rotation modes.*/
155cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_ROTATION_0	1/* 0 degrees */
156cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_ROTATION_90	2/* 90 degrees */
157cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_ROTATION_180	3/* 180 degrees */
158cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_ROTATION_270	4/* 270 degrees */
159cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
160cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL timeout values*/
161cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_TIMEOUT_INFINITE	0xffffffff
162cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
163cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Different allowed intra refresh modes.*/
164cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IR_OFF	1
165cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IR_CYCLIC	2
166cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IR_RANDOM	3
167cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
168cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL BASE CODES Not to be used directly by the client.*/
169cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/* Base value for ioctls that are not related to encoder configuration.*/
170cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTLBASE_NENC	0x800
171cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/* Base value for encoder configuration ioctls*/
172cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTLBASE_ENC	0x850
173cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
174cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_ioctl_msg{
175cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	void __user *in;
176cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	void __user *out;
177cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
178cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
179cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*NON ENCODER CONFIGURATION IOCTLs*/
180cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
181cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - unsigned long, OutputData - NULL*/
182cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_INTF_VERSION \
183cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 0, struct venc_ioctl_msg)
184cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
185cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_timeout, OutputData - venc_msg*/
186cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_READ_NEXT_MSG \
187cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOWR(VEN_IOCTLBASE_NENC, 1, struct venc_ioctl_msg)
188cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
189cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - NULL, OutputData - NULL*/
190cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_STOP_READ_MSG	_IO(VEN_IOCTLBASE_NENC, 2)
191cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
192cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_allocatorproperty, OutputData - NULL
193cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_allocatorproperty*/
194cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_INPUT_BUFFER_REQ \
195cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 3, struct venc_ioctl_msg)
196cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_INPUT_BUFFER_REQ \
197cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_NENC, 4, struct venc_ioctl_msg)
198cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
199cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
200cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_ALLOC_INPUT_BUFFER \
201cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 5, struct venc_ioctl_msg)
202cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
203cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
204cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_INPUT_BUFFER \
205cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 6, struct venc_ioctl_msg)
206cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
207cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params: CMD: InputData - venc_bufferpayload, OutputData - NULL*/
208cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_FREE_INPUT_BUFFER \
209cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 7, struct venc_ioctl_msg)
210cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
211cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_allocatorproperty, OutputData - NULL
212cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_allocatorproperty*/
213cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_OUTPUT_BUFFER_REQ \
214cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 8, struct venc_ioctl_msg)
215cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_OUTPUT_BUFFER_REQ \
216cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_NENC, 9, struct venc_ioctl_msg)
217cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
218cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
219cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_ALLOC_OUTPUT_BUFFER \
220cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 10, struct venc_ioctl_msg)
221cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
222cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
223cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
224cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_OUTPUT_BUFFER \
225cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 11, struct venc_ioctl_msg)
226cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
227cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL.*/
228cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_FREE_OUTPUT_BUFFER \
229cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 12, struct venc_ioctl_msg)
230cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
231cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
232cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/* Asynchronous respone message code:* VEN_MSG_START*/
233cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_START	_IO(VEN_IOCTLBASE_NENC, 13)
234cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
235cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
236cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_buffer, OutputData - NULL
237cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj Asynchronous respone message code:VEN_MSG_INPUT_BUFFER_DONE*/
238cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_ENCODE_FRAME \
239cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 14, struct venc_ioctl_msg)
240cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
241cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
242cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_buffer, OutputData - NULL
243cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj Asynchronous response message code:VEN_MSG_OUTPUT_BUFFER_DONE*/
244cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER \
245cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 15, struct venc_ioctl_msg)
246cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
247cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:CMD: InputData - venc_bufferflush, OutputData - NULL
248cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj * Asynchronous response message code:VEN_MSG_INPUT_BUFFER_DONE*/
249cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_FLUSH \
250cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 16, struct venc_ioctl_msg)
251cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
252cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
253cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Asynchronous respone message code:VEN_MSG_PAUSE*/
254cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_PAUSE	_IO(VEN_IOCTLBASE_NENC, 17)
255cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
256cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*Asynchronous respone message code:VEN_MSG_RESUME*/
257cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_RESUME _IO(VEN_IOCTLBASE_NENC, 18)
258cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
259cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/* Asynchronous respone message code:VEN_MSG_STOP*/
260cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_STOP _IO(VEN_IOCTLBASE_NENC, 19)
261cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
262cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_RECON_BUFFER \
263cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 20, struct venc_ioctl_msg)
264cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
265cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_FREE_RECON_BUFFER \
266cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 21, struct venc_ioctl_msg)
267cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
268cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_RECON_BUFFER_SIZE \
269cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_NENC, 22, struct venc_ioctl_msg)
270cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
271cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
272cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
273cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*ENCODER PROPERTY CONFIGURATION & CAPABILITY IOCTLs*/
274cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
275cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_basecfg, OutputData - NULL
276cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_basecfg*/
277cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_BASE_CFG \
278cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 1, struct venc_ioctl_msg)
279cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_BASE_CFG \
280cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 2, struct venc_ioctl_msg)
281cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
282cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
283cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_switch*/
284cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_LIVE_MODE \
285cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 3, struct venc_ioctl_msg)
286cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_LIVE_MODE \
287cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 4, struct venc_ioctl_msg)
288cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
289cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
290cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_profile, OutputData - NULL
291cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_profile*/
292cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_CODEC_PROFILE \
293cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 5, struct venc_ioctl_msg)
294cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_CODEC_PROFILE \
295cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 6, struct venc_ioctl_msg)
296cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
297cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
298cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - ven_profilelevel, OutputData - NULL
299cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - ven_profilelevel*/
300cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_PROFILE_LEVEL \
301cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 7, struct venc_ioctl_msg)
302cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
303cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_PROFILE_LEVEL \
304cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 8, struct venc_ioctl_msg)
305cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
306cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
307cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_switch*/
308cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_SHORT_HDR \
309cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 9, struct venc_ioctl_msg)
310cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_SHORT_HDR \
311cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 10, struct venc_ioctl_msg)
312cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
313cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
314cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params: SET: InputData - venc_sessionqp, OutputData - NULL
315cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_sessionqp*/
316cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_SESSION_QP \
317cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 11, struct venc_ioctl_msg)
318cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_SESSION_QP \
319cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 12, struct venc_ioctl_msg)
320cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
321cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
322cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_intraperiod, OutputData - NULL
323cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_intraperiod*/
324cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_INTRA_PERIOD \
325cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 13, struct venc_ioctl_msg)
326cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_INTRA_PERIOD \
327cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 14, struct venc_ioctl_msg)
328cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
329cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
330cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/* Request an Iframe*/
331cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_CMD_REQUEST_IFRAME _IO(VEN_IOCTLBASE_ENC, 15)
332cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
333cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_capability*/
334cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_CAPABILITY \
335cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 16, struct venc_ioctl_msg)
336cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
337cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
338cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_seqheader*/
339cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_SEQUENCE_HDR \
340cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 17, struct venc_ioctl_msg)
341cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
342cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_entropycfg, OutputData - NULL
343cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_entropycfg*/
344cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_ENTROPY_CFG \
345cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 18, struct venc_ioctl_msg)
346cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_ENTROPY_CFG \
347cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 19, struct venc_ioctl_msg)
348cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
349cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_dbcfg, OutputData - NULL
350cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_dbcfg*/
351cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_DEBLOCKING_CFG \
352cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 20, struct venc_ioctl_msg)
353cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_DEBLOCKING_CFG \
354cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 21, struct venc_ioctl_msg)
355cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
356cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
357cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_intrarefresh, OutputData - NULL
358cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_intrarefresh*/
359cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_INTRA_REFRESH \
360cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 22, struct venc_ioctl_msg)
361cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_INTRA_REFRESH \
362cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 23, struct venc_ioctl_msg)
363cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
364cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
365cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_multiclicecfg, OutputData - NULL
366cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_multiclicecfg*/
367cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_MULTI_SLICE_CFG \
368cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 24, struct venc_ioctl_msg)
369cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_MULTI_SLICE_CFG \
370cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 25, struct venc_ioctl_msg)
371cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
372cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_ratectrlcfg, OutputData - NULL
373cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_ratectrlcfg*/
374cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_RATE_CTRL_CFG \
375cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 26, struct venc_ioctl_msg)
376cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_RATE_CTRL_CFG \
377cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 27, struct venc_ioctl_msg)
378cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
379cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
380cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_voptimingcfg, OutputData - NULL
381cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_voptimingcfg*/
382cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_VOP_TIMING_CFG \
383cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 28, struct venc_ioctl_msg)
384cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_VOP_TIMING_CFG \
385cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 29, struct venc_ioctl_msg)
386cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
387cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
388cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_framerate, OutputData - NULL
389cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_framerate*/
390cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_FRAME_RATE \
391cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 30, struct venc_ioctl_msg)
392cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_FRAME_RATE \
393cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 31, struct venc_ioctl_msg)
394cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
395cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
396cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_targetbitrate, OutputData - NULL
397cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_targetbitrate*/
398cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_TARGET_BITRATE \
399cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 32, struct venc_ioctl_msg)
400cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_TARGET_BITRATE \
401cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 33, struct venc_ioctl_msg)
402cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
403cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
404cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_rotation, OutputData - NULL
405cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj  GET: InputData - NULL, OutputData - venc_rotation*/
406cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_ROTATION \
407cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 34, struct venc_ioctl_msg)
408cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_ROTATION \
409cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 35, struct venc_ioctl_msg)
410cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
411cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
412cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_headerextension, OutputData - NULL
413cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_headerextension*/
414cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_HEC \
415cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 36, struct venc_ioctl_msg)
416cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_HEC \
417cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 37, struct venc_ioctl_msg)
418cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
419cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
420cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_switch*/
421cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_DATA_PARTITION \
422cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 38, struct venc_ioctl_msg)
423cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_DATA_PARTITION \
424cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 39, struct venc_ioctl_msg)
425cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
426cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
427cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_switch*/
428cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_RVLC \
429cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 40, struct venc_ioctl_msg)
430cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_RVLC \
431cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 41, struct venc_ioctl_msg)
432cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
433cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
434cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
435cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_switch*/
436cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_AC_PREDICTION \
437cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 42, struct venc_ioctl_msg)
438cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_AC_PREDICTION \
439cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 43, struct venc_ioctl_msg)
440cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
441cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
442cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_qprange, OutputData - NULL
443cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj GET: InputData - NULL, OutputData - venc_qprange*/
444cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_QP_RANGE \
445cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 44, struct venc_ioctl_msg)
446cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_QP_RANGE \
447cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 45, struct venc_ioctl_msg)
448cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
449cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_NUMBER_INSTANCES \
450cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 46, struct venc_ioctl_msg)
451cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
452cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_METABUFFER_MODE \
453cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 47, struct venc_ioctl_msg)
454cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
455cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
456cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - unsigned int, OutputData - NULL.*/
457cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_EXTRADATA \
458cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 48, struct venc_ioctl_msg)
459cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - unsigned int.*/
460cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_EXTRADATA \
461cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 49, struct venc_ioctl_msg)
462cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
463cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - NULL, OutputData - NULL.*/
464cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_SLICE_DELIVERY_MODE \
465cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IO(VEN_IOCTLBASE_ENC, 50)
466cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
467cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_H263_PLUSPTYPE \
468cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 51, struct venc_ioctl_msg)
469cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
470cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_range, OutputData - NULL.*/
471cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_CAPABILITY_LTRCOUNT \
472cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 52, struct venc_ioctl_msg)
473cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_range.*/
474cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_CAPABILITY_LTRCOUNT \
475cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 53, struct venc_ioctl_msg)
476cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
477cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_ltrmode, OutputData - NULL.*/
478cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_LTRMODE \
479cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 54, struct venc_ioctl_msg)
480cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrmode.*/
481cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_LTRMODE \
482cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 55, struct venc_ioctl_msg)
483cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
484cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_ltrcount, OutputData - NULL.*/
485cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_LTRCOUNT \
486cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 56, struct venc_ioctl_msg)
487cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrcount.*/
488cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_LTRCOUNT \
489cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 57, struct venc_ioctl_msg)
490cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
491cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_ltrperiod, OutputData - NULL.*/
492cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_LTRPERIOD \
493cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 58, struct venc_ioctl_msg)
494cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrperiod.*/
495cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_LTRPERIOD \
496cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 59, struct venc_ioctl_msg)
497cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
498cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_ltruse, OutputData - NULL.*/
499cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_LTRUSE \
500cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 60, struct venc_ioctl_msg)
501cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltruse.*/
502cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_LTRUSE \
503cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 61, struct venc_ioctl_msg)
504cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
505cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - venc_ltrmark, OutputData - NULL.*/
506cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_LTRMARK \
507cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 62, struct venc_ioctl_msg)
508cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrmark.*/
509cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_GET_LTRMARK \
510cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOR(VEN_IOCTLBASE_ENC, 63, struct venc_ioctl_msg)
511cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
512cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj/*IOCTL params:SET: InputData - unsigned int, OutputData - NULL*/
513cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj#define VEN_IOCTL_SET_SPS_PPS_FOR_IDR \
514cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	_IOW(VEN_IOCTLBASE_ENC, 64, struct venc_ioctl_msg)
515cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
516cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_range {
517cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	max;
518cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	min;
519cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	step_size;
520cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
521cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
522cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_switch{
523cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned char	status;
524cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
525cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
526cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_allocatorproperty{
527cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	 mincount;
528cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	 maxcount;
529cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	 actualcount;
530cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	 datasize;
531cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	 suffixsize;
532cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	 alignment;
533cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	 bufpoolid;
534cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
535cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
536cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_bufferpayload{
537cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned char *pbuffer;
538cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	size_t	sz;
539cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	int	fd;
540cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int	offset;
541cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned int	maped_size;
542cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	filled_len;
543cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
544cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
545cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_buffer{
546cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj unsigned char *ptrbuffer;
547cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj unsigned long	sz;
548cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj unsigned long	len;
549cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj unsigned long	offset;
550cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj long long	timestamp;
551cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj unsigned long	flags;
552cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj void	*clientdata;
553cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
554cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
555cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_basecfg{
556cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	input_width;
557cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	input_height;
558cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	dvs_width;
559cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	dvs_height;
560cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	codectype;
561cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	fps_num;
562cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	fps_den;
563cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	targetbitrate;
564cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	inputformat;
565cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
566cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
567cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_profile{
568cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	profile;
569cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
570cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct ven_profilelevel{
571cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	level;
572cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
573cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
574cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_sessionqp{
575cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	iframeqp;
576cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	pframqp;
577cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
578cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
579cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_qprange{
580cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	maxqp;
581cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	minqp;
582cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
583cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
584cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_plusptype {
585cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	plusptype_enable;
586cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
587cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
588cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_intraperiod{
589cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	num_pframes;
590cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	num_bframes;
591cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
592cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_seqheader{
593cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned char *hdrbufptr;
594cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	bufsize;
595cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	hdrlen;
596cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
597cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
598cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_capability{
599cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	codec_types;
600cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	maxframe_width;
601cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	maxframe_height;
602cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	maxtarget_bitrate;
603cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	maxframe_rate;
604cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	input_formats;
605cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned char	dvs;
606cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
607cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
608cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_entropycfg{
609cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned longentropysel;
610cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	cabacmodel;
611cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
612cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
613cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_dbcfg{
614cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	db_mode;
615cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	slicealpha_offset;
616cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	slicebeta_offset;
617cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
618cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
619cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_intrarefresh{
620cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	irmode;
621cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	mbcount;
622cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
623cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
624cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_multiclicecfg{
625cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	mslice_mode;
626cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	mslice_size;
627cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
628cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
629cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_bufferflush{
630cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	flush_mode;
631cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
632cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
633cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_ratectrlcfg{
634cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	rcmode;
635cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
636cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
637cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct	venc_voptimingcfg{
638cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	voptime_resolution;
639cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
640cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_framerate{
641cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	fps_denominator;
642cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	fps_numerator;
643cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
644cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
645cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_targetbitrate{
646cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	target_bitrate;
647cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
648cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
649cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
650cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_rotation{
651cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	rotation;
652cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
653cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
654cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_timeout{
655cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	 unsigned long	millisec;
656cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
657cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
658cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_headerextension{
659cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	 unsigned long	header_extension;
660cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
661cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
662cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_msg{
663cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	statuscode;
664cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	msgcode;
665cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	struct venc_buffer	buf;
666cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long	msgdata_size;
667cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
668cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
669cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_recon_addr{
670cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned char *pbuffer;
671cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long buffer_size;
672cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long pmem_fd;
673cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long offset;
674cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
675cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
676cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_recon_buff_size{
677cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	int width;
678cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	int height;
679cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	int size;
680cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	int alignment;
681cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
682cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
683cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_ltrmode {
684cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long   ltr_mode;
685cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
686cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
687cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_ltrcount {
688cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long   ltr_count;
689cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
690cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
691cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_ltrperiod {
692cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long   ltr_period;
693cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
694cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
695cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramarajstruct venc_ltruse {
696cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long   ltr_id;
697cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj	unsigned long   ltr_frames;
698cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj};
699cd369140fd7fbed4ea06e15beb5ec45cbbfdd0ffNaveen Ramaraj
700731075f3fd4c9fd79fa2b70f29f8f24acc5ae9b7Praveen Chavan#endif /* _UAPI_MSM_VIDC_ENC_H_ */
701