1d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#ifndef _UAPI_MSM_VIDC_ENC_H_
2d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define _UAPI_MSM_VIDC_ENC_H_
35d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
45d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/types.h>
55d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/ioctl.h>
65d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
75d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/** STATUS CODES*/
85d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* Base value for status codes */
95d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_BASE	0x00000000
105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_SUCCESS	(VEN_S_BASE)/* Success */
115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EFAIL	(VEN_S_BASE+1)/* General failure */
125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EFATAL	(VEN_S_BASE+2)/* Fatal irrecoverable failure*/
135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EBADPARAM	(VEN_S_BASE+3)/* Error passed parameters*/
145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Command called in invalid state*/
155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EINVALSTATE	(VEN_S_BASE+4)
165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ENOSWRES	(VEN_S_BASE+5)/* Insufficient OS resources*/
175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ENOHWRES	(VEN_S_BASE+6)/*Insufficient HW resources */
185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EBUFFREQ	(VEN_S_BASE+7)/* Buffer requirements were not met*/
195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EINVALCMD	(VEN_S_BASE+8)/* Invalid command called */
205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ETIMEOUT	(VEN_S_BASE+9)/* Command timeout. */
215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Re-attempt was made when multiple invocation not supported for API.*/
225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ENOREATMPT	(VEN_S_BASE+10)
235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ENOPREREQ	(VEN_S_BASE+11)/*Pre-requirement is not met for API*/
245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ECMDQFULL	(VEN_S_BASE+12)/*Command queue is full*/
255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ENOTSUPP	(VEN_S_BASE+13)/*Command not supported*/
265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ENOTIMPL	(VEN_S_BASE+14)/*Command not implemented.*/
275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ENOTPMEM	(VEN_S_BASE+15)/*Buffer is not from PMEM*/
285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EFLUSHED	(VEN_S_BASE+16)/*returned buffer was flushed*/
295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EINSUFBUF	(VEN_S_BASE+17)/*provided buffer size insufficient*/
305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_ESAMESTATE	(VEN_S_BASE+18)
315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_S_EINVALTRANS	(VEN_S_BASE+19)
325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_INTF_VER			 1
345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Asynchronous messages from driver*/
365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_INDICATION	0
375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_INPUT_BUFFER_DONE	1
385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_OUTPUT_BUFFER_DONE	2
395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_NEED_OUTPUT_BUFFER	3
405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_FLUSH_INPUT_DONE	4
415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_FLUSH_OUPUT_DONE	5
425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_START	6
435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_STOP	7
445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_PAUSE	8
455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_RESUME	9
465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_STOP_READING_MSG	10
475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_LTRUSE_FAILED	    11
485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_HW_OVERLOAD	12
495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSG_MAX_CLIENTS	13
505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Buffer flags bits masks*/
535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_BUFFLAG_EOS	0x00000001
545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_BUFFLAG_ENDOFFRAME	0x00000010
555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_BUFFLAG_SYNCFRAME	0x00000020
565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_BUFFLAG_EXTRADATA	0x00000040
575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_BUFFLAG_CODECCONFIG	0x00000080
585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Post processing flags bit masks*/
605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_EXTRADATA_NONE          0x001
615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_EXTRADATA_QCOMFILLER    0x002
625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_EXTRADATA_SLICEINFO     0x100
635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_EXTRADATA_LTRINFO       0x200
645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_EXTRADATA_MBINFO        0x400
655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*ENCODER CONFIGURATION CONSTANTS*/
675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Encoded video frame types*/
695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_FRAME_TYPE_I	1/* I frame type */
705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_FRAME_TYPE_P	2/* P frame type */
715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_FRAME_TYPE_B	3/* B frame type */
725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Video codec types*/
745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_CODEC_MPEG4	1/* MPEG4 Codec */
755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_CODEC_H264	2/* H.264 Codec */
765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_CODEC_H263	3/* H.263 Codec */
775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Video codec profile types.*/
795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_PROFILE_MPEG4_SP      1/* 1 - MPEG4 SP profile      */
805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_PROFILE_MPEG4_ASP     2/* 2 - MPEG4 ASP profile     */
815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_PROFILE_H264_BASELINE 3/* 3 - H264 Baseline profile	*/
825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_PROFILE_H264_MAIN     4/* 4 - H264 Main profile     */
835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_PROFILE_H264_HIGH     5/* 5 - H264 High profile     */
845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_PROFILE_H263_BASELINE 6/* 6 - H263 Baseline profile */
855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Video codec profile level types.*/
875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_0	 0x1/* MPEG4 Level 0  */
885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_1	 0x2/* MPEG4 Level 1  */
895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_2	 0x3/* MPEG4 Level 2  */
905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_3	 0x4/* MPEG4 Level 3  */
915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_4	 0x5/* MPEG4 Level 4  */
925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_5	 0x6/* MPEG4 Level 5  */
935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_3b	 0x7/* MPEG4 Level 3b */
945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_MPEG4_6	 0x8/* MPEG4 Level 6  */
955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_1	 0x9/* H.264 Level 1   */
975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_1b        0xA/* H.264 Level 1b  */
985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_1p1	 0xB/* H.264 Level 1.1 */
995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_1p2	 0xC/* H.264 Level 1.2 */
1005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_1p3	 0xD/* H.264 Level 1.3 */
1015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_2	 0xE/* H.264 Level 2   */
1025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_2p1	 0xF/* H.264 Level 2.1 */
1035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_2p2	0x10/* H.264 Level 2.2 */
1045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_3	0x11/* H.264 Level 3   */
1055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_3p1	0x12/* H.264 Level 3.1 */
1065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_3p2	0x13/* H.264 Level 3.2 */
1075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H264_4	0x14/* H.264 Level 4   */
1085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_10	0x15/* H.263 Level 10  */
1105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_20	0x16/* H.263 Level 20  */
1115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_30	0x17/* H.263 Level 30  */
1125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_40	0x18/* H.263 Level 40  */
1135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_45	0x19/* H.263 Level 45  */
1145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_50	0x1A/* H.263 Level 50  */
1155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_60	0x1B/* H.263 Level 60  */
1165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_LEVEL_H263_70	0x1C/* H.263 Level 70  */
1175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Entropy coding model selection for H.264 encoder.*/
1195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_ENTROPY_MODEL_CAVLC	1
1205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_ENTROPY_MODEL_CABAC	2
1215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Cabac model number (0,1,2) for encoder.*/
1225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_CABAC_MODEL_0	1/* CABAC Model 0. */
1235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_CABAC_MODEL_1	2/* CABAC Model 1. */
1245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_CABAC_MODEL_2	3/* CABAC Model 2. */
1255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Deblocking filter control type for encoder.*/
1275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_DB_DISABLE	1/* 1 - Disable deblocking filter*/
1285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_DB_ALL_BLKG_BNDRY	2/* 2 - All blocking boundary filtering*/
1295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_DB_SKIP_SLICE_BNDRY	3/* 3 - Filtering except sliceboundary*/
1305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Different methods of Multi slice selection.*/
1325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSLICE_OFF	1
1335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSLICE_CNT_MB	2 /*number of MBscount per slice*/
1345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSLICE_CNT_BYTE	3 /*number of bytes count per slice.*/
1355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_MSLICE_GOB	4 /*Multi slice by GOB for H.263 only.*/
1365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Different modes for Rate Control.*/
1385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_RC_OFF	1
1395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_RC_VBR_VFR	2
1405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_RC_VBR_CFR	3
1415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_RC_CBR_VFR	4
1425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_RC_CBR_CFR	5
1435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Different modes for flushing buffers*/
1455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_FLUSH_INPUT	1
1465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_FLUSH_OUTPUT	2
1475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_FLUSH_ALL	3
1485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Different input formats for YUV data.*/
1505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_INPUTFMT_NV12	1/* NV12 Linear */
1515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_INPUTFMT_NV21	2/* NV21 Linear */
1525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_INPUTFMT_NV12_16M2KA	3/* NV12 Linear */
1535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Different allowed rotation modes.*/
1555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_ROTATION_0	1/* 0 degrees */
1565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_ROTATION_90	2/* 90 degrees */
1575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_ROTATION_180	3/* 180 degrees */
1585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_ROTATION_270	4/* 270 degrees */
1595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL timeout values*/
1615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_TIMEOUT_INFINITE	0xffffffff
1625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Different allowed intra refresh modes.*/
1645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IR_OFF	1
1655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IR_CYCLIC	2
1665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IR_RANDOM	3
1675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL BASE CODES Not to be used directly by the client.*/
1695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* Base value for ioctls that are not related to encoder configuration.*/
1705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTLBASE_NENC	0x800
1715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* Base value for encoder configuration ioctls*/
1725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTLBASE_ENC	0x850
1735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_ioctl_msg{
175d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin	void __user *in;
176d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin	void __user *out;
1775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*NON ENCODER CONFIGURATION IOCTLs*/
1805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - unsigned long, OutputData - NULL*/
1825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_INTF_VERSION \
1835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 0, struct venc_ioctl_msg)
1845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_timeout, OutputData - venc_msg*/
1865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_READ_NEXT_MSG \
1875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(VEN_IOCTLBASE_NENC, 1, struct venc_ioctl_msg)
1885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - NULL, OutputData - NULL*/
1905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_STOP_READ_MSG	_IO(VEN_IOCTLBASE_NENC, 2)
1915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_allocatorproperty, OutputData - NULL
1935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_allocatorproperty*/
1945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_INPUT_BUFFER_REQ \
1955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 3, struct venc_ioctl_msg)
1965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_INPUT_BUFFER_REQ \
1975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_NENC, 4, struct venc_ioctl_msg)
1985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
2005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_ALLOC_INPUT_BUFFER \
2015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 5, struct venc_ioctl_msg)
2025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
2045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_INPUT_BUFFER \
2055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 6, struct venc_ioctl_msg)
2065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params: CMD: InputData - venc_bufferpayload, OutputData - NULL*/
2085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_FREE_INPUT_BUFFER \
2095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 7, struct venc_ioctl_msg)
2105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_allocatorproperty, OutputData - NULL
2125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_allocatorproperty*/
2135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_OUTPUT_BUFFER_REQ \
2145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 8, struct venc_ioctl_msg)
2155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_OUTPUT_BUFFER_REQ \
2165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_NENC, 9, struct venc_ioctl_msg)
2175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
2195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_ALLOC_OUTPUT_BUFFER \
2205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 10, struct venc_ioctl_msg)
2215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL*/
2245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_OUTPUT_BUFFER \
2255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 11, struct venc_ioctl_msg)
2265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_bufferpayload, OutputData - NULL.*/
2285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_FREE_OUTPUT_BUFFER \
2295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 12, struct venc_ioctl_msg)
2305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* Asynchronous respone message code:* VEN_MSG_START*/
2335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_START	_IO(VEN_IOCTLBASE_NENC, 13)
2345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_buffer, OutputData - NULL
2375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin Asynchronous respone message code:VEN_MSG_INPUT_BUFFER_DONE*/
2385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_ENCODE_FRAME \
2395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 14, struct venc_ioctl_msg)
2405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_buffer, OutputData - NULL
2435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin Asynchronous response message code:VEN_MSG_OUTPUT_BUFFER_DONE*/
2445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER \
2455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 15, struct venc_ioctl_msg)
2465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:CMD: InputData - venc_bufferflush, OutputData - NULL
2485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * Asynchronous response message code:VEN_MSG_INPUT_BUFFER_DONE*/
2495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_FLUSH \
2505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 16, struct venc_ioctl_msg)
2515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Asynchronous respone message code:VEN_MSG_PAUSE*/
2545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_PAUSE	_IO(VEN_IOCTLBASE_NENC, 17)
2555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*Asynchronous respone message code:VEN_MSG_RESUME*/
2575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_RESUME _IO(VEN_IOCTLBASE_NENC, 18)
2585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* Asynchronous respone message code:VEN_MSG_STOP*/
2605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_STOP _IO(VEN_IOCTLBASE_NENC, 19)
2615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_RECON_BUFFER \
2635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 20, struct venc_ioctl_msg)
2645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_FREE_RECON_BUFFER \
2665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 21, struct venc_ioctl_msg)
2675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_RECON_BUFFER_SIZE \
2695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_NENC, 22, struct venc_ioctl_msg)
2705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*ENCODER PROPERTY CONFIGURATION & CAPABILITY IOCTLs*/
2745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_basecfg, OutputData - NULL
2765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_basecfg*/
2775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_BASE_CFG \
2785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 1, struct venc_ioctl_msg)
2795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_BASE_CFG \
2805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 2, struct venc_ioctl_msg)
2815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
2835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_switch*/
2845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_LIVE_MODE \
2855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 3, struct venc_ioctl_msg)
2865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_LIVE_MODE \
2875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 4, struct venc_ioctl_msg)
2885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_profile, OutputData - NULL
2915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_profile*/
2925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_CODEC_PROFILE \
2935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 5, struct venc_ioctl_msg)
2945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_CODEC_PROFILE \
2955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 6, struct venc_ioctl_msg)
2965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - ven_profilelevel, OutputData - NULL
2995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - ven_profilelevel*/
3005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_PROFILE_LEVEL \
3015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 7, struct venc_ioctl_msg)
3025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_PROFILE_LEVEL \
3045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 8, struct venc_ioctl_msg)
3055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
3075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_switch*/
3085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_SHORT_HDR \
3095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 9, struct venc_ioctl_msg)
3105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_SHORT_HDR \
3115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 10, struct venc_ioctl_msg)
3125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params: SET: InputData - venc_sessionqp, OutputData - NULL
3155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_sessionqp*/
3165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_SESSION_QP \
3175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 11, struct venc_ioctl_msg)
3185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_SESSION_QP \
3195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 12, struct venc_ioctl_msg)
3205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_intraperiod, OutputData - NULL
3235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_intraperiod*/
3245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_INTRA_PERIOD \
3255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 13, struct venc_ioctl_msg)
3265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_INTRA_PERIOD \
3275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 14, struct venc_ioctl_msg)
3285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* Request an Iframe*/
3315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_CMD_REQUEST_IFRAME _IO(VEN_IOCTLBASE_ENC, 15)
3325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_capability*/
3345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_CAPABILITY \
3355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 16, struct venc_ioctl_msg)
3365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_seqheader*/
3395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_SEQUENCE_HDR \
3405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 17, struct venc_ioctl_msg)
3415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_entropycfg, OutputData - NULL
3435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_entropycfg*/
3445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_ENTROPY_CFG \
3455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 18, struct venc_ioctl_msg)
3465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_ENTROPY_CFG \
3475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 19, struct venc_ioctl_msg)
3485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_dbcfg, OutputData - NULL
3505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_dbcfg*/
3515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_DEBLOCKING_CFG \
3525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 20, struct venc_ioctl_msg)
3535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_DEBLOCKING_CFG \
3545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 21, struct venc_ioctl_msg)
3555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_intrarefresh, OutputData - NULL
3585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_intrarefresh*/
3595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_INTRA_REFRESH \
3605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 22, struct venc_ioctl_msg)
3615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_INTRA_REFRESH \
3625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 23, struct venc_ioctl_msg)
3635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_multiclicecfg, OutputData - NULL
3665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_multiclicecfg*/
3675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_MULTI_SLICE_CFG \
3685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 24, struct venc_ioctl_msg)
3695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_MULTI_SLICE_CFG \
3705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 25, struct venc_ioctl_msg)
3715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_ratectrlcfg, OutputData - NULL
3735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_ratectrlcfg*/
3745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_RATE_CTRL_CFG \
3755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 26, struct venc_ioctl_msg)
3765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_RATE_CTRL_CFG \
3775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 27, struct venc_ioctl_msg)
3785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_voptimingcfg, OutputData - NULL
3815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_voptimingcfg*/
3825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_VOP_TIMING_CFG \
3835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 28, struct venc_ioctl_msg)
3845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_VOP_TIMING_CFG \
3855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 29, struct venc_ioctl_msg)
3865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_framerate, OutputData - NULL
3895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_framerate*/
3905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_FRAME_RATE \
3915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 30, struct venc_ioctl_msg)
3925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_FRAME_RATE \
3935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 31, struct venc_ioctl_msg)
3945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_targetbitrate, OutputData - NULL
3975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_targetbitrate*/
3985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_TARGET_BITRATE \
3995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 32, struct venc_ioctl_msg)
4005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_TARGET_BITRATE \
4015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 33, struct venc_ioctl_msg)
4025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_rotation, OutputData - NULL
4055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin  GET: InputData - NULL, OutputData - venc_rotation*/
4065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_ROTATION \
4075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 34, struct venc_ioctl_msg)
4085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_ROTATION \
4095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 35, struct venc_ioctl_msg)
4105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_headerextension, OutputData - NULL
4135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_headerextension*/
4145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_HEC \
4155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 36, struct venc_ioctl_msg)
4165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_HEC \
4175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 37, struct venc_ioctl_msg)
4185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
4205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_switch*/
4215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_DATA_PARTITION \
4225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 38, struct venc_ioctl_msg)
4235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_DATA_PARTITION \
4245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 39, struct venc_ioctl_msg)
4255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
4275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_switch*/
4285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_RVLC \
4295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 40, struct venc_ioctl_msg)
4305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_RVLC \
4315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 41, struct venc_ioctl_msg)
4325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_switch, OutputData - NULL
4355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_switch*/
4365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_AC_PREDICTION \
4375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 42, struct venc_ioctl_msg)
4385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_AC_PREDICTION \
4395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 43, struct venc_ioctl_msg)
4405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_qprange, OutputData - NULL
4435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin GET: InputData - NULL, OutputData - venc_qprange*/
4445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_QP_RANGE \
4455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 44, struct venc_ioctl_msg)
4465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_QP_RANGE \
4475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 45, struct venc_ioctl_msg)
4485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_NUMBER_INSTANCES \
4505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 46, struct venc_ioctl_msg)
4515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_METABUFFER_MODE \
4535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 47, struct venc_ioctl_msg)
4545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - unsigned int, OutputData - NULL.*/
4575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_EXTRADATA \
4585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 48, struct venc_ioctl_msg)
4595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - unsigned int.*/
4605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_EXTRADATA \
4615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 49, struct venc_ioctl_msg)
4625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - NULL, OutputData - NULL.*/
4645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_SLICE_DELIVERY_MODE \
4655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(VEN_IOCTLBASE_ENC, 50)
4665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_H263_PLUSPTYPE \
4685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 51, struct venc_ioctl_msg)
4695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_range, OutputData - NULL.*/
4715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_CAPABILITY_LTRCOUNT \
4725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 52, struct venc_ioctl_msg)
4735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_range.*/
4745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_CAPABILITY_LTRCOUNT \
4755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 53, struct venc_ioctl_msg)
4765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_ltrmode, OutputData - NULL.*/
4785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_LTRMODE \
4795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 54, struct venc_ioctl_msg)
4805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrmode.*/
4815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_LTRMODE \
4825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 55, struct venc_ioctl_msg)
4835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_ltrcount, OutputData - NULL.*/
4855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_LTRCOUNT \
4865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 56, struct venc_ioctl_msg)
4875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrcount.*/
4885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_LTRCOUNT \
4895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 57, struct venc_ioctl_msg)
4905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_ltrperiod, OutputData - NULL.*/
4925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_LTRPERIOD \
4935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 58, struct venc_ioctl_msg)
4945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrperiod.*/
4955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_LTRPERIOD \
4965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 59, struct venc_ioctl_msg)
4975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
4985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_ltruse, OutputData - NULL.*/
4995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_LTRUSE \
5005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 60, struct venc_ioctl_msg)
5015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltruse.*/
5025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_LTRUSE \
5035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 61, struct venc_ioctl_msg)
5045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - venc_ltrmark, OutputData - NULL.*/
5065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_LTRMARK \
5075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 62, struct venc_ioctl_msg)
5085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:GET: InputData - NULL, OutputData - venc_ltrmark.*/
5095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_GET_LTRMARK \
5105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOR(VEN_IOCTLBASE_ENC, 63, struct venc_ioctl_msg)
5115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*IOCTL params:SET: InputData - unsigned int, OutputData - NULL*/
5135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VEN_IOCTL_SET_SPS_PPS_FOR_IDR \
5145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOW(VEN_IOCTLBASE_ENC, 64, struct venc_ioctl_msg)
5155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_range {
5175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	max;
5185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	min;
5195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	step_size;
5205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_switch{
5235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char	status;
5245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_allocatorproperty{
5275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	 mincount;
5285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	 maxcount;
5295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	 actualcount;
5305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	 datasize;
5315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	 suffixsize;
5325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	 alignment;
5335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	 bufpoolid;
5345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_bufferpayload{
5375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char *pbuffer;
5385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	size_t	sz;
5395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int	fd;
5405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int	offset;
5415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int	maped_size;
5425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	filled_len;
5435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_buffer{
5465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char *ptrbuffer;
5475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned long	sz;
5485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned long	len;
5495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned long	offset;
5505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin long long	timestamp;
5515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned long	flags;
5525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin void	*clientdata;
5535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_basecfg{
5565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	input_width;
5575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	input_height;
5585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	dvs_width;
5595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	dvs_height;
5605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	codectype;
5615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	fps_num;
5625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	fps_den;
5635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	targetbitrate;
5645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	inputformat;
5655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_profile{
5685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	profile;
5695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct ven_profilelevel{
5715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	level;
5725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_sessionqp{
5755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	iframeqp;
5765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	pframqp;
5775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_qprange{
5805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	maxqp;
5815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	minqp;
5825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_plusptype {
5855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	plusptype_enable;
5865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_intraperiod{
5895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	num_pframes;
5905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	num_bframes;
5915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_seqheader{
5935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char *hdrbufptr;
5945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	bufsize;
5955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	hdrlen;
5965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
5975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
5985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_capability{
5995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	codec_types;
6005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	maxframe_width;
6015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	maxframe_height;
6025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	maxtarget_bitrate;
6035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	maxframe_rate;
6045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	input_formats;
6055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char	dvs;
6065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_entropycfg{
6095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned longentropysel;
6105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	cabacmodel;
6115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_dbcfg{
6145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	db_mode;
6155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	slicealpha_offset;
6165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	slicebeta_offset;
6175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_intrarefresh{
6205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	irmode;
6215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	mbcount;
6225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_multiclicecfg{
6255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	mslice_mode;
6265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	mslice_size;
6275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_bufferflush{
6305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	flush_mode;
6315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_ratectrlcfg{
6345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	rcmode;
6355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct	venc_voptimingcfg{
6385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	voptime_resolution;
6395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_framerate{
6415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	fps_denominator;
6425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	fps_numerator;
6435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_targetbitrate{
6465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	target_bitrate;
6475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_rotation{
6515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	rotation;
6525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_timeout{
6555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	 unsigned long	millisec;
6565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_headerextension{
6595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	 unsigned long	header_extension;
6605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_msg{
6635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	statuscode;
6645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	msgcode;
6655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct venc_buffer	buf;
6665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long	msgdata_size;
6675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_recon_addr{
6705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char *pbuffer;
6715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long buffer_size;
6725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long pmem_fd;
6735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long offset;
6745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_recon_buff_size{
6775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int width;
6785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int height;
6795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int size;
6805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int alignment;
6815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_ltrmode {
6845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long   ltr_mode;
6855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_ltrcount {
6885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long   ltr_count;
6895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_ltrperiod {
6925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long   ltr_period;
6935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
6955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct venc_ltruse {
6965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long   ltr_id;
6975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned long   ltr_frames;
6985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
6995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
700d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#endif /* _UAPI_MSM_VIDC_ENC_H_ */
701