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