306 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			306 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************
 | |
|  ****************************************************************************
 | |
|  ***
 | |
|  ***   This header was automatically generated from a Linux kernel header
 | |
|  ***   of the same name, to make information necessary for userspace to
 | |
|  ***   call into the kernel available to libc.  It contains only constants,
 | |
|  ***   structures, and macros generated from the original header, and thus,
 | |
|  ***   contains no copyrightable information.
 | |
|  ***
 | |
|  ***   To edit the content of this header, modify the corresponding
 | |
|  ***   source file (e.g. under external/kernel-headers/original/) then
 | |
|  ***   run bionic/libc/kernel/tools/update_all.py
 | |
|  ***
 | |
|  ***   Any manual change here will be lost the next time this script will
 | |
|  ***   be run. You've been warned!
 | |
|  ***
 | |
|  ****************************************************************************
 | |
|  ****************************************************************************/
 | |
| #ifndef _MSM_VENC_H_
 | |
| #define _MSM_VENC_H_
 | |
| #include <linux/types.h>
 | |
| #define VENC_MAX_RECON_BUFFERS 2
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| #define VENC_FLAG_EOS 0x00000001
 | |
| #define VENC_FLAG_END_OF_FRAME 0x00000010
 | |
| #define VENC_FLAG_SYNC_FRAME 0x00000020
 | |
| #define VENC_FLAG_EXTRA_DATA 0x00000040
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| #define VENC_FLAG_CODEC_CONFIG 0x00000080
 | |
| enum venc_flush_type {
 | |
|  VENC_FLUSH_INPUT,
 | |
|  VENC_FLUSH_OUTPUT,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_FLUSH_ALL
 | |
| };
 | |
| enum venc_state_type {
 | |
|  VENC_STATE_PAUSE = 0x1,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_STATE_START = 0x2,
 | |
|  VENC_STATE_STOP = 0x4
 | |
| };
 | |
| enum venc_event_type_enum {
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_EVENT_START_STATUS,
 | |
|  VENC_EVENT_STOP_STATUS,
 | |
|  VENC_EVENT_SUSPEND_STATUS,
 | |
|  VENC_EVENT_RESUME_STATUS,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_EVENT_FLUSH_STATUS,
 | |
|  VENC_EVENT_RELEASE_INPUT,
 | |
|  VENC_EVENT_DELIVER_OUTPUT,
 | |
|  VENC_EVENT_UNKNOWN_STATUS
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| };
 | |
| enum venc_status_code {
 | |
|  VENC_STATUS_SUCCESS,
 | |
|  VENC_STATUS_ERROR,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_STATUS_INVALID_STATE,
 | |
|  VENC_STATUS_FLUSHING,
 | |
|  VENC_STATUS_INVALID_PARAM,
 | |
|  VENC_STATUS_CMD_QUEUE_FULL,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_STATUS_CRITICAL,
 | |
|  VENC_STATUS_INSUFFICIENT_RESOURCES,
 | |
|  VENC_STATUS_TIMEOUT
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| enum venc_msg_code {
 | |
|  VENC_MSG_INDICATION,
 | |
|  VENC_MSG_INPUT_BUFFER_DONE,
 | |
|  VENC_MSG_OUTPUT_BUFFER_DONE,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_MSG_NEED_OUTPUT_BUFFER,
 | |
|  VENC_MSG_FLUSH,
 | |
|  VENC_MSG_START,
 | |
|  VENC_MSG_STOP,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_MSG_PAUSE,
 | |
|  VENC_MSG_RESUME,
 | |
|  VENC_MSG_STOP_READING_MSG
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| enum venc_error_code {
 | |
|  VENC_S_SUCCESS,
 | |
|  VENC_S_EFAIL,
 | |
|  VENC_S_EFATAL,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_S_EBADPARAM,
 | |
|  VENC_S_EINVALSTATE,
 | |
|  VENC_S_ENOSWRES,
 | |
|  VENC_S_ENOHWRES,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_S_EBUFFREQ,
 | |
|  VENC_S_EINVALCMD,
 | |
|  VENC_S_ETIMEOUT,
 | |
|  VENC_S_ENOREATMPT,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_S_ENOPREREQ,
 | |
|  VENC_S_ECMDQFULL,
 | |
|  VENC_S_ENOTSUPP,
 | |
|  VENC_S_ENOTIMPL,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_S_ENOTPMEM,
 | |
|  VENC_S_EFLUSHED,
 | |
|  VENC_S_EINSUFBUF,
 | |
|  VENC_S_ESAMESTATE,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_S_EINVALTRANS
 | |
| };
 | |
| enum venc_mem_region_enum {
 | |
|  VENC_PMEM_EBI1,
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  VENC_PMEM_SMI
 | |
| };
 | |
| struct venc_buf_type {
 | |
|  unsigned int region;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int phys;
 | |
|  unsigned int size;
 | |
|  int offset;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| struct venc_qp_range {
 | |
|  unsigned int min_qp;
 | |
|  unsigned int max_qp;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| struct venc_frame_rate {
 | |
|  unsigned int frame_rate_num;
 | |
|  unsigned int frame_rate_den;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| struct venc_slice_info {
 | |
|  unsigned int slice_mode;
 | |
|  unsigned int units_per_slice;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| struct venc_extra_data {
 | |
|  unsigned int slice_extra_data_flag;
 | |
|  unsigned int slice_client_data1;
 | |
|  unsigned int slice_client_data2;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int slice_client_data3;
 | |
|  unsigned int none_extra_data_flag;
 | |
|  unsigned int none_client_data1;
 | |
|  unsigned int none_client_data2;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int none_client_data3;
 | |
| };
 | |
| struct venc_common_config {
 | |
|  unsigned int standard;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int input_frame_height;
 | |
|  unsigned int input_frame_width;
 | |
|  unsigned int output_frame_height;
 | |
|  unsigned int output_frame_width;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int rotation_angle;
 | |
|  unsigned int intra_period;
 | |
|  unsigned int rate_control;
 | |
|  struct venc_frame_rate frame_rate;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int bitrate;
 | |
|  struct venc_qp_range qp_range;
 | |
|  unsigned int iframe_qp;
 | |
|  unsigned int pframe_qp;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  struct venc_slice_info slice_config;
 | |
|  struct venc_extra_data extra_data;
 | |
| };
 | |
| struct venc_nonio_buf_config {
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  struct venc_buf_type recon_buf1;
 | |
|  struct venc_buf_type recon_buf2;
 | |
|  struct venc_buf_type wb_buf;
 | |
|  struct venc_buf_type cmd_buf;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  struct venc_buf_type vlc_buf;
 | |
| };
 | |
| struct venc_mpeg4_config {
 | |
|  unsigned int profile;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int level;
 | |
|  unsigned int time_resolution;
 | |
|  unsigned int ac_prediction;
 | |
|  unsigned int hec_interval;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int data_partition;
 | |
|  unsigned int short_header;
 | |
|  unsigned int rvlc_enable;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| struct venc_h263_config {
 | |
|  unsigned int profile;
 | |
|  unsigned int level;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| struct venc_h264_config {
 | |
|  unsigned int profile;
 | |
|  unsigned int level;
 | |
|  unsigned int max_nal;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int idr_period;
 | |
| };
 | |
| struct venc_pmem {
 | |
|  int src;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  int fd;
 | |
|  unsigned int offset;
 | |
|  void *virt;
 | |
|  void *phys;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int size;
 | |
| };
 | |
| struct venc_buffer {
 | |
|  unsigned char *ptr_buffer;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int size;
 | |
|  unsigned int len;
 | |
|  unsigned int offset;
 | |
|  long long time_stamp;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int flags;
 | |
|  unsigned int client_data;
 | |
| };
 | |
| struct venc_buffers {
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  struct venc_pmem recon_buf[VENC_MAX_RECON_BUFFERS];
 | |
|  struct venc_pmem wb_buf;
 | |
|  struct venc_pmem cmd_buf;
 | |
|  struct venc_pmem vlc_buf;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| };
 | |
| struct venc_buffer_flush {
 | |
|  unsigned int flush_mode;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| union venc_msg_data {
 | |
|  struct venc_buffer buf;
 | |
|  struct venc_buffer_flush flush_ret;
 | |
| };
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| struct venc_msg {
 | |
|  unsigned int status_code;
 | |
|  unsigned int msg_code;
 | |
|  union venc_msg_data msg_data;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  unsigned int msg_data_size;
 | |
| };
 | |
| union venc_codec_config {
 | |
|  struct venc_mpeg4_config mpeg4_params;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  struct venc_h263_config h263_params;
 | |
|  struct venc_h264_config h264_params;
 | |
| };
 | |
| struct venc_q6_config {
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  struct venc_common_config config_params;
 | |
|  union venc_codec_config codec_params;
 | |
|  struct venc_nonio_buf_config buf_params;
 | |
|  void *callback_event;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| };
 | |
| struct venc_hdr_config {
 | |
|  struct venc_common_config config_params;
 | |
|  union venc_codec_config codec_params;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| };
 | |
| struct venc_init_config {
 | |
|  struct venc_q6_config q6_config;
 | |
|  struct venc_buffers q6_bufs;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| };
 | |
| struct venc_seq_config {
 | |
|  int size;
 | |
|  struct venc_pmem buf;
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
|  struct venc_q6_config q6_config;
 | |
| };
 | |
| #define VENC_IOCTL_MAGIC 'V'
 | |
| #define VENC_IOCTL_CMD_READ_NEXT_MSG   _IOWR(VENC_IOCTL_MAGIC, 1, struct venc_msg)
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| #define VENC_IOCTL_CMD_STOP_READ_MSG _IO(VENC_IOCTL_MAGIC, 2)
 | |
| #define VENC_IOCTL_SET_INPUT_BUFFER   _IOW(VENC_IOCTL_MAGIC, 3, struct venc_pmem)
 | |
| #define VENC_IOCTL_SET_OUTPUT_BUFFER   _IOW(VENC_IOCTL_MAGIC, 4, struct venc_pmem)
 | |
| #define VENC_IOCTL_CMD_START _IOW(VENC_IOCTL_MAGIC, 5, struct venc_init_config)
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| #define VENC_IOCTL_CMD_ENCODE_FRAME   _IOW(VENC_IOCTL_MAGIC, 6, struct venc_buffer)
 | |
| #define VENC_IOCTL_CMD_FILL_OUTPUT_BUFFER   _IOW(VENC_IOCTL_MAGIC, 7, struct venc_buffer)
 | |
| #define VENC_IOCTL_CMD_FLUSH   _IOW(VENC_IOCTL_MAGIC, 8, struct venc_buffer_flush)
 | |
| #define VENC_IOCTL_CMD_PAUSE _IO(VENC_IOCTL_MAGIC, 9)
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| #define VENC_IOCTL_CMD_RESUME _IO(VENC_IOCTL_MAGIC, 10)
 | |
| #define VENC_IOCTL_CMD_STOP _IO(VENC_IOCTL_MAGIC, 11)
 | |
| #define VENC_IOCTL_SET_INTRA_PERIOD   _IOW(VENC_IOCTL_MAGIC, 12, int)
 | |
| #define VENC_IOCTL_CMD_REQUEST_IFRAME _IO(VENC_IOCTL_MAGIC, 13)
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| #define VENC_IOCTL_GET_SEQUENCE_HDR   _IOWR(VENC_IOCTL_MAGIC, 14, struct venc_seq_config)
 | |
| #define VENC_IOCTL_SET_INTRA_REFRESH   _IOW(VENC_IOCTL_MAGIC, 15, int)
 | |
| #define VENC_IOCTL_SET_FRAME_RATE   _IOW(VENC_IOCTL_MAGIC, 16, struct venc_frame_rate)
 | |
| #define VENC_IOCTL_SET_TARGET_BITRATE   _IOW(VENC_IOCTL_MAGIC, 17, int)
 | |
| /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 | |
| #define VENC_IOCTL_SET_QP_RANGE   _IOW(VENC_IOCTL_MAGIC, 18, struct venc_qp_range)
 | |
| #endif
 | 
