18611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/****************************************************************************
28611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ****************************************************************************
38611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
48611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   This header was automatically generated from a Linux kernel header
58611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   of the same name, to make information necessary for userspace to
68611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   call into the kernel available to libc.  It contains only constants,
78611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   structures, and macros generated from the original header, and thus,
88611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   contains no copyrightable information.
98611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
108611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   To edit the content of this header, modify the corresponding
118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   source file (e.g. under external/kernel-headers/original/) then
128611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   run bionic/libc/kernel/tools/update_all.py
138611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
148611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   Any manual change here will be lost the next time this script will
158611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   be run. You've been warned!
168611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
178611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ****************************************************************************
188611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ****************************************************************************/
198611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#ifndef _MSM_VENC_H_
208611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define _MSM_VENC_H_
218611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#include <linux/types.h>
228611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_MAX_RECON_BUFFERS 2
238611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
248611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_FLAG_EOS 0x00000001
258611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_FLAG_END_OF_FRAME 0x00000010
268611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_FLAG_SYNC_FRAME 0x00000020
278611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_FLAG_EXTRA_DATA 0x00000040
288611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
298611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_FLAG_CODEC_CONFIG 0x00000080
308611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum venc_flush_type {
318611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_FLUSH_INPUT,
328611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_FLUSH_OUTPUT,
338611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
348611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_FLUSH_ALL
358611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
368611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum venc_state_type {
378611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATE_PAUSE = 0x1,
388611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
398611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATE_START = 0x2,
408611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATE_STOP = 0x4
418611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
428611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum venc_event_type_enum {
438611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
448611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_START_STATUS,
458611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_STOP_STATUS,
468611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_SUSPEND_STATUS,
478611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_RESUME_STATUS,
488611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
498611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_FLUSH_STATUS,
508611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_RELEASE_INPUT,
518611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_DELIVER_OUTPUT,
528611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_EVENT_UNKNOWN_STATUS
538611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
548611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
558611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum venc_status_code {
568611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_SUCCESS,
578611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_ERROR,
588611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
598611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_INVALID_STATE,
608611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_FLUSHING,
618611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_INVALID_PARAM,
628611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_CMD_QUEUE_FULL,
638611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
648611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_CRITICAL,
658611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_INSUFFICIENT_RESOURCES,
668611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_STATUS_TIMEOUT
678611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
688611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
698611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum venc_msg_code {
708611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_INDICATION,
718611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_INPUT_BUFFER_DONE,
728611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_OUTPUT_BUFFER_DONE,
738611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
748611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_NEED_OUTPUT_BUFFER,
758611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_FLUSH,
768611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_START,
778611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_STOP,
788611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
798611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_PAUSE,
808611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_RESUME,
818611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_MSG_STOP_READING_MSG
828611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
838611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
848611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum venc_error_code {
858611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_SUCCESS,
868611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EFAIL,
878611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EFATAL,
888611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
898611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EBADPARAM,
908611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EINVALSTATE,
918611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ENOSWRES,
928611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ENOHWRES,
938611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
948611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EBUFFREQ,
958611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EINVALCMD,
968611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ETIMEOUT,
978611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ENOREATMPT,
988611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
998611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ENOPREREQ,
1008611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ECMDQFULL,
1018611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ENOTSUPP,
1028611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ENOTIMPL,
1038611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1048611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ENOTPMEM,
1058611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EFLUSHED,
1068611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EINSUFBUF,
1078611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_ESAMESTATE,
1088611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1098611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_S_EINVALTRANS
1108611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum venc_mem_region_enum {
1128611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_PMEM_EBI1,
1138611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1148611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VENC_PMEM_SMI
1158611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1168611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_buf_type {
117f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 region;
1188611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 phys;
120f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 size;
1218611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int offset;
1228611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1238611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1248611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_qp_range {
125f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 min_qp;
126f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 max_qp;
1278611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1288611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1298611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_frame_rate {
130f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 frame_rate_num;
131f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 frame_rate_den;
1328611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1338611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1348611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_slice_info {
135f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 slice_mode;
136f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 units_per_slice;
1378611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1388611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1398611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_extra_data {
140f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 slice_extra_data_flag;
141f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 slice_client_data1;
142f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 slice_client_data2;
1438611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 slice_client_data3;
145f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 none_extra_data_flag;
146f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 none_client_data1;
147f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 none_client_data2;
1488611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 none_client_data3;
1508611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1518611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_common_config {
152f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 standard;
1538611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 input_frame_height;
155f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 input_frame_width;
156f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 output_frame_height;
157f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 output_frame_width;
1588611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 rotation_angle;
160f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 intra_period;
161f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 rate_control;
1628611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_frame_rate frame_rate;
1638611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 bitrate;
1658611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_qp_range qp_range;
166f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 iframe_qp;
167f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 pframe_qp;
1688611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1698611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_slice_info slice_config;
1708611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_extra_data extra_data;
1718611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1728611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_nonio_buf_config {
1738611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1748611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buf_type recon_buf1;
1758611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buf_type recon_buf2;
1768611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buf_type wb_buf;
1778611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buf_type cmd_buf;
1788611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1798611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buf_type vlc_buf;
1808611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1818611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_mpeg4_config {
182f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 profile;
1838611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 level;
185f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 time_resolution;
186f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 ac_prediction;
187f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 hec_interval;
1888611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 data_partition;
190f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 short_header;
191f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 rvlc_enable;
1928611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1938611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1948611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_h263_config {
195f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 profile;
196f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 level;
1978611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1988611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1998611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_h264_config {
200f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 profile;
201f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 level;
202f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 max_nal;
2038611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 idr_period;
2058611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2068611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_pmem {
2078611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int src;
2088611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2098611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int fd;
210f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 offset;
2118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu void *virt;
2128611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu void *phys;
2138611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 size;
2158611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2168611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_buffer {
2178611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu unsigned char *ptr_buffer;
2188611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 size;
220f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 len;
221f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 offset;
2228611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu long long time_stamp;
2238611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 flags;
225f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 client_data;
2268611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2278611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_buffers {
2288611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2298611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_pmem recon_buf[VENC_MAX_RECON_BUFFERS];
2308611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_pmem wb_buf;
2318611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_pmem cmd_buf;
2328611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_pmem vlc_buf;
2338611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2348611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2358611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_buffer_flush {
236f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 flush_mode;
2378611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2388611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2398611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuunion venc_msg_data {
2408611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buffer buf;
2418611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buffer_flush flush_ret;
2428611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2438611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2448611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_msg {
245f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 status_code;
246f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 msg_code;
247f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 msg_data_size;
2488611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev union venc_msg_data msg_data;
2508611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2518611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuunion venc_codec_config {
2528611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_mpeg4_config mpeg4_params;
2538611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2548611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_h263_config h263_params;
2558611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_h264_config h264_params;
2568611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2578611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_q6_config {
2588611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2598611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_common_config config_params;
2608611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu union venc_codec_config codec_params;
2618611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_nonio_buf_config buf_params;
2628611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu void *callback_event;
2638611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2648611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2658611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_hdr_config {
2668611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_common_config config_params;
2678611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu union venc_codec_config codec_params;
2688611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2698611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2708611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_init_config {
2718611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_q6_config q6_config;
2728611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_buffers q6_bufs;
2738611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2748611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
2758611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct venc_seq_config {
2768611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int size;
2778611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_pmem buf;
2788611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2798611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct venc_q6_config q6_config;
2808611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
281f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchevstruct venc_version {
282f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 major;
283f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev u32 minor;
285f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev};
2868611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_MAGIC 'V'
2878611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_READ_NEXT_MSG   _IOWR(VENC_IOCTL_MAGIC, 1, struct venc_msg)
2888611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2898611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_STOP_READ_MSG _IO(VENC_IOCTL_MAGIC, 2)
2908611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_SET_INPUT_BUFFER   _IOW(VENC_IOCTL_MAGIC, 3, struct venc_pmem)
2918611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_SET_OUTPUT_BUFFER   _IOW(VENC_IOCTL_MAGIC, 4, struct venc_pmem)
2928611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_START _IOW(VENC_IOCTL_MAGIC, 5, struct venc_init_config)
2938611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2948611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_ENCODE_FRAME   _IOW(VENC_IOCTL_MAGIC, 6, struct venc_buffer)
2958611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_FILL_OUTPUT_BUFFER   _IOW(VENC_IOCTL_MAGIC, 7, struct venc_buffer)
2968611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_FLUSH   _IOW(VENC_IOCTL_MAGIC, 8, struct venc_buffer_flush)
2978611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_PAUSE _IO(VENC_IOCTL_MAGIC, 9)
2988611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2998611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_RESUME _IO(VENC_IOCTL_MAGIC, 10)
3008611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_STOP _IO(VENC_IOCTL_MAGIC, 11)
3018611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_SET_INTRA_PERIOD   _IOW(VENC_IOCTL_MAGIC, 12, int)
3028611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_CMD_REQUEST_IFRAME _IO(VENC_IOCTL_MAGIC, 13)
3038611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3048611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_GET_SEQUENCE_HDR   _IOWR(VENC_IOCTL_MAGIC, 14, struct venc_seq_config)
3058611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_SET_INTRA_REFRESH   _IOW(VENC_IOCTL_MAGIC, 15, int)
3068611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_SET_FRAME_RATE   _IOW(VENC_IOCTL_MAGIC, 16, struct venc_frame_rate)
3078611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_SET_TARGET_BITRATE   _IOW(VENC_IOCTL_MAGIC, 17, int)
3088611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3098611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VENC_IOCTL_SET_QP_RANGE   _IOW(VENC_IOCTL_MAGIC, 18, struct venc_qp_range)
310f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev#define VENC_IOCTL_GET_VERSION   _IOR(VENC_IOCTL_MAGIC, 19, struct venc_version)
3118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#endif
312f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev
313