| /* Copyright (c) 2010-2012, Code Aurora Forum. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 and |
| * only version 2 as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| */ |
| |
| #ifndef _VIDC_H_ |
| #define _VIDC_H_ |
| |
| #include "vidc_hwio_reg.h" |
| |
| #define VIDC_1080P_RISC2HOST_CMD_EMPTY 0 |
| #define VIDC_1080P_RISC2HOST_CMD_OPEN_CH_RET 1 |
| #define VIDC_1080P_RISC2HOST_CMD_CLOSE_CH_RET 2 |
| #define VIDC_1080P_RISC2HOST_CMD_SEQ_DONE_RET 4 |
| #define VIDC_1080P_RISC2HOST_CMD_FRAME_DONE_RET 5 |
| #define VIDC_1080P_RISC2HOST_CMD_ENC_COMPLETE_RET 7 |
| #define VIDC_1080P_RISC2HOST_CMD_SYS_INIT_RET 8 |
| #define VIDC_1080P_RISC2HOST_CMD_FW_STATUS_RET 9 |
| #define VIDC_1080P_RISC2HOST_CMD_FLUSH_COMMAND_RET 12 |
| #define VIDC_1080P_RISC2HOST_CMD_ABORT_RET 13 |
| #define VIDC_1080P_RISC2HOST_CMD_INIT_BUFFERS_RET 15 |
| #define VIDC_1080P_RISC2HOST_CMD_EDFU_INT_RET 16 |
| #define VIDC_1080P_RISC2HOST_CMD_ERROR_RET 32 |
| |
| #define VIDC_RISC2HOST_ARG2_VIDC_DISP_ERROR_STATUS_BMSK 0xffff0000 |
| #define VIDC_RISC2HOST_ARG2_VIDC_DISP_ERROR_STATUS_SHFT 16 |
| #define VIDC_RISC2HOST_ARG2_VIDC_DEC_ERROR_STATUS_BMSK 0x0000ffff |
| #define VIDC_RISC2HOST_ARG2_VIDC_DEC_ERROR_STATUS_SHFT 0 |
| |
| #define VIDC_1080P_ERROR_INVALID_CHANNEL_NUMBER 1 |
| #define VIDC_1080P_ERROR_INVALID_COMMAND_ID 2 |
| #define VIDC_1080P_ERROR_CHANNEL_ALREADY_IN_USE 3 |
| #define VIDC_1080P_ERROR_CHANNEL_NOT_OPEN_BEFORE_CHANNEL_CLOSE 4 |
| #define VIDC_1080P_ERROR_OPEN_CH_ERROR_SEQ_START 5 |
| #define VIDC_1080P_ERROR_SEQ_START_ALREADY_CALLED 6 |
| #define VIDC_1080P_ERROR_OPEN_CH_ERROR_INIT_BUFFERS 7 |
| #define VIDC_1080P_ERROR_SEQ_START_ERROR_INIT_BUFFERS 8 |
| #define VIDC_1080P_ERROR_INIT_BUFFER_ALREADY_CALLED 9 |
| #define VIDC_1080P_ERROR_OPEN_CH_ERROR_FRAME_START 10 |
| #define VIDC_1080P_ERROR_SEQ_START_ERROR_FRAME_START 11 |
| #define VIDC_1080P_ERROR_INIT_BUFFERS_ERROR_FRAME_START 12 |
| #define VIDC_1080P_ERROR_RESOLUTION_CHANGED 13 |
| #define VIDC_1080P_ERROR_INVALID_COMMAND_LAST_FRAME 14 |
| #define VIDC_1080P_ERROR_INVALID_COMMAND 15 |
| #define VIDC_1080P_ERROR_INVALID_CODEC_TYPE 16 |
| |
| #define VIDC_1080P_ERROR_MEM_ALLOCATION_FAILED 20 |
| #define VIDC_1080P_ERROR_INSUFFICIENT_CONTEXT_SIZE 25 |
| #define VIDC_1080P_ERROR_UNSUPPORTED_FEATURE_IN_PROFILE 27 |
| #define VIDC_1080P_ERROR_RESOLUTION_NOT_SUPPORTED 28 |
| |
| #define VIDC_1080P_ERROR_HEADER_NOT_FOUND 52 |
| #define VIDC_1080P_ERROR_VOS_END_CODE_RECEIVED 53 |
| #define VIDC_1080P_ERROR_FRAME_RATE_NOT_SUPPORTED 62 |
| #define VIDC_1080P_ERROR_INVALID_QP_VALUE 63 |
| #define VIDC_1080P_ERROR_INVALID_RC_REACTION_COEFFICIENT 64 |
| #define VIDC_1080P_ERROR_INVALID_CPB_SIZE_AT_GIVEN_LEVEL 65 |
| #define VIDC_1080P_ERROR_B_FRAME_NOT_SUPPORTED 66 |
| #define VIDC_1080P_ERROR_ALLOC_DPB_SIZE_NOT_SUFFICIENT 71 |
| #define VIDC_1080P_ERROR_NUM_DPB_OUT_OF_RANGE 74 |
| #define VIDC_1080P_ERROR_NULL_METADATA_INPUT_POINTER 77 |
| #define VIDC_1080P_ERROR_NULL_DPB_POINTER 78 |
| #define VIDC_1080P_ERROR_NULL_OTH_EXT_BUFADDR 79 |
| #define VIDC_1080P_ERROR_NULL_MV_POINTER 80 |
| #define VIDC_1080P_ERROR_DIVIDE_BY_ZERO 81 |
| #define VIDC_1080P_ERROR_BIT_STREAM_BUF_EXHAUST 82 |
| #define VIDC_1080P_ERROR_DESCRIPTOR_BUFFER_EMPTY 83 |
| #define VIDC_1080P_ERROR_DMA_TX_NOT_COMPLETE 84 |
| #define VIDC_1080P_ERROR_DESCRIPTOR_TABLE_ENTRY_INVALID 85 |
| #define VIDC_1080P_ERROR_MB_COEFF_NOT_DONE 86 |
| #define VIDC_1080P_ERROR_CODEC_SLICE_NOT_DONE 87 |
| #define VIDC_1080P_ERROR_VIDC_CORE_TIME_OUT 88 |
| #define VIDC_1080P_ERROR_VC1_BITPLANE_DECODE_ERR 89 |
| #define VIDC_1080P_ERROR_VSP_NOT_READY 90 |
| #define VIDC_1080P_ERROR_BUFFER_FULL_STATE 91 |
| |
| #define VIDC_1080P_ERROR_RESOLUTION_MISMATCH 112 |
| #define VIDC_1080P_ERROR_NV_QUANT_ERR 113 |
| #define VIDC_1080P_ERROR_SYNC_MARKER_ERR 114 |
| #define VIDC_1080P_ERROR_FEATURE_NOT_SUPPORTED 115 |
| #define VIDC_1080P_ERROR_MEM_CORRUPTION 116 |
| #define VIDC_1080P_ERROR_INVALID_REFERENCE_FRAME 117 |
| #define VIDC_1080P_ERROR_PICTURE_CODING_TYPE_ERR 118 |
| #define VIDC_1080P_ERROR_MV_RANGE_ERR 119 |
| #define VIDC_1080P_ERROR_PICTURE_STRUCTURE_ERR 120 |
| #define VIDC_1080P_ERROR_SLICE_ADDR_INVALID 121 |
| #define VIDC_1080P_ERROR_NON_PAIRED_FIELD_NOT_SUPPORTED 122 |
| #define VIDC_1080P_ERROR_NON_FRAME_DATA_RECEIVED 123 |
| #define VIDC_1080P_ERROR_NO_BUFFER_RELEASED_FROM_HOST 125 |
| #define VIDC_1080P_ERROR_NULL_FW_DEBUG_INFO_POINTER 126 |
| #define VIDC_1080P_ERROR_ALLOC_DEBUG_INFO_SIZE_INSUFFICIENT 127 |
| #define VIDC_1080P_ERROR_NALU_HEADER_ERROR 128 |
| #define VIDC_1080P_ERROR_SPS_PARSE_ERROR 129 |
| #define VIDC_1080P_ERROR_PPS_PARSE_ERROR 130 |
| #define VIDC_1080P_ERROR_SLICE_PARSE_ERROR 131 |
| #define VIDC_1080P_ERROR_SYNC_POINT_NOT_RECEIVED 171 |
| |
| #define VIDC_1080P_WARN_COMMAND_FLUSHED 145 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_NUM_CONCEAL_MB 150 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_QP 151 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_CONCEAL_MB 152 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_VC1_PARAM 153 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_SEI 154 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_VUI 155 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_EXTRA 156 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_DATA_NONE 157 |
| #define VIDC_1080P_WARN_FRAME_RATE_UNKNOWN 158 |
| #define VIDC_1080P_WARN_ASPECT_RATIO_UNKNOWN 159 |
| #define VIDC_1080P_WARN_COLOR_PRIMARIES_UNKNOWN 160 |
| #define VIDC_1080P_WARN_TRANSFER_CHAR_UNKNOWN 161 |
| #define VIDC_1080P_WARN_MATRIX_COEFF_UNKNOWN 162 |
| #define VIDC_1080P_WARN_NON_SEQ_SLICE_ADDR 163 |
| #define VIDC_1080P_WARN_BROKEN_LINK 164 |
| #define VIDC_1080P_WARN_FRAME_CONCEALED 165 |
| #define VIDC_1080P_WARN_PROFILE_UNKNOWN 166 |
| #define VIDC_1080P_WARN_LEVEL_UNKNOWN 167 |
| #define VIDC_1080P_WARN_BIT_RATE_NOT_SUPPORTED 168 |
| #define VIDC_1080P_WARN_COLOR_DIFF_FORMAT_NOT_SUPPORTED 169 |
| #define VIDC_1080P_WARN_NULL_EXTRA_METADATA_POINTER 170 |
| #define VIDC_1080P_WARN_DEBLOCKING_NOT_DONE 178 |
| #define VIDC_1080P_WARN_INCOMPLETE_FRAME 179 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_MB_INFO 180 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_SLICE_SIZE 181 |
| #define VIDC_1080P_WARN_RESOLUTION_WARNING 182 |
| |
| #define VIDC_1080P_WARN_NO_LONG_TERM_REFERENCE 183 |
| #define VIDC_1080P_WARN_NO_SPACE_MPEG2_DATA_DUMP 190 |
| #define VIDC_1080P_WARN_METADATA_NO_SPACE_MISSING_MB 191 |
| |
| #define VIDC_1080P_H264_ENC_TYPE_P 0 |
| #define VIDC_1080P_H264_ENC_TYPE_B 1 |
| #define VIDC_1080P_H264_ENC_TYPE_IDR 2 |
| #define VIDC_1080P_MP4_H263_ENC_TYPE_I 0 |
| #define VIDC_1080P_MP4_H263_ENC_TYPE_P 1 |
| #define VIDC_1080P_MP4_H263_ENC_TYPE_B 2 |
| |
| #define VIDC_1080P_MPEG4_LEVEL0 0 |
| #define VIDC_1080P_MPEG4_LEVEL0b 9 |
| #define VIDC_1080P_MPEG4_LEVEL1 1 |
| #define VIDC_1080P_MPEG4_LEVEL2 2 |
| #define VIDC_1080P_MPEG4_LEVEL3 3 |
| #define VIDC_1080P_MPEG4_LEVEL3b 7 |
| #define VIDC_1080P_MPEG4_LEVEL4 4 |
| #define VIDC_1080P_MPEG4_LEVEL4a 4 |
| #define VIDC_1080P_MPEG4_LEVEL5 5 |
| #define VIDC_1080P_MPEG4_LEVEL6 6 |
| #define VIDC_1080P_MPEG4_LEVEL7 7 |
| |
| #define VIDC_1080P_H264_LEVEL1 10 |
| #define VIDC_1080P_H264_LEVEL1b 9 |
| #define VIDC_1080P_H264_LEVEL1p1 11 |
| #define VIDC_1080P_H264_LEVEL1p2 12 |
| #define VIDC_1080P_H264_LEVEL1p3 13 |
| #define VIDC_1080P_H264_LEVEL2 20 |
| #define VIDC_1080P_H264_LEVEL2p1 21 |
| #define VIDC_1080P_H264_LEVEL2p2 22 |
| #define VIDC_1080P_H264_LEVEL3 30 |
| #define VIDC_1080P_H264_LEVEL3p1 31 |
| #define VIDC_1080P_H264_LEVEL3p2 32 |
| #define VIDC_1080P_H264_LEVEL4 40 |
| #define VIDC_1080P_H264_LEVEL5p1 51 |
| #define VIDC_1080P_H264_LEVEL_MAX VIDC_1080P_H264_LEVEL5p1 |
| |
| #define VIDC_1080P_H263_LEVEL10 10 |
| #define VIDC_1080P_H263_LEVEL20 20 |
| #define VIDC_1080P_H263_LEVEL30 30 |
| #define VIDC_1080P_H263_LEVEL40 40 |
| #define VIDC_1080P_H263_LEVEL45 45 |
| #define VIDC_1080P_H263_LEVEL50 50 |
| #define VIDC_1080P_H263_LEVEL60 60 |
| #define VIDC_1080P_H263_LEVEL70 70 |
| |
| #define VIDC_1080P_BUS_ERROR_HANDLER 0x01 |
| #define VIDC_1080P_ILLEVIDC_INSTRUCTION_HANDLER 0x02 |
| #define VIDC_1080P_TICK_HANDLER 0x04 |
| #define VIDC_1080P_TRAP_HANDLER 0x10 |
| #define VIDC_1080P_ALIGN_HANDLER 0x20 |
| #define VIDC_1080P_RANGE_HANDLER 0x40 |
| #define VIDC_1080P_DTLB_MISS_EXCEPTION_HANDLER 0x80 |
| #define VIDC_1080P_ITLB_MISS_EXCEPTION_HANDLER 0x100 |
| #define VIDC_1080P_DATA_PAGE_FAULT_EXCEPTION_HANDLER 0x200 |
| #define VIDC_1080P_INST_PAGE_FAULT_EXCEPTION_HANDLER 0x400 |
| |
| enum vidc_1080p_reset{ |
| VIDC_1080P_RESET_IN_SEQ_FIRST_STAGE = 0x0, |
| VIDC_1080P_RESET_IN_SEQ_SECOND_STAGE = 0x1, |
| }; |
| enum vidc_1080p_memory_access_method{ |
| VIDC_1080P_TILE_LINEAR = 0, |
| VIDC_1080P_TILE_16x16 = 2, |
| VIDC_1080P_TILE_64x32 = 3, |
| VIDC_1080P_TILE_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_host2risc_cmd{ |
| VIDC_1080P_HOST2RISC_CMD_EMPTY = 0, |
| VIDC_1080P_HOST2RISC_CMD_OPEN_CH = 1, |
| VIDC_1080P_HOST2RISC_CMD_CLOSE_CH = 2, |
| VIDC_1080P_HOST2RISC_CMD_SYS_INIT = 3, |
| VIDC_1080P_HOST2RISC_CMD_FLUSH_COMMMAND = 4, |
| VIDC_1080P_HOST2RISC_CMD_CONTINUE_ENC = 7, |
| VIDC_1080P_HOST2RISC_CMD_ABORT_ENC = 8, |
| VIDC_1080P_HOST2RISC_CMD_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_decode_p_cache_enable{ |
| VIDC_1080P_DECODE_PCACHE_ENABLE_P = 0, |
| VIDC_1080P_DECODE_PCACHE_ENABLE_B = 1, |
| VIDC_1080P_DECODE_PCACHE_ENABLE_PB = 2, |
| VIDC_1080P_DECODE_PCACHE_DISABLE = 3, |
| VIDC_1080P_DECODE_PCACHE_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_encode_p_cache_enable{ |
| VIDC_1080P_ENCODE_PCACHE_ENABLE = 0, |
| VIDC_1080P_ENCODE_PCACHE_DISABLE = 3, |
| VIDC_1080P_ENCODE_PCACHE_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_codec{ |
| VIDC_1080P_H264_DECODE = 0, |
| VIDC_1080P_VC1_DECODE = 1, |
| VIDC_1080P_MPEG4_DECODE = 2, |
| VIDC_1080P_MPEG2_DECODE = 3, |
| VIDC_1080P_H263_DECODE = 4, |
| VIDC_1080P_VC1_RCV_DECODE = 5, |
| VIDC_1080P_DIVX311_DECODE = 6, |
| VIDC_1080P_DIVX412_DECODE = 7, |
| VIDC_1080P_DIVX502_DECODE = 8, |
| VIDC_1080P_DIVX503_DECODE = 9, |
| VIDC_1080P_H264_ENCODE = 16, |
| VIDC_1080P_MPEG4_ENCODE = 17, |
| VIDC_1080P_H263_ENCODE = 18, |
| VIDC_1080P_CODEC_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_entropy_sel{ |
| VIDC_1080P_ENTROPY_SEL_CAVLC = 0, |
| VIDC_1080P_ENTROPY_SEL_CABAC = 1, |
| VIDC_1080P_ENTROPY_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_DBConfig{ |
| VIDC_1080P_DB_ALL_BLOCKING_BOUNDARY = 0, |
| VIDC_1080P_DB_DISABLE = 1, |
| VIDC_1080P_DB_SKIP_SLICE_BOUNDARY = 2, |
| VIDC_1080P_DB_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_MSlice_selection{ |
| VIDC_1080P_MSLICE_DISABLE = 0, |
| VIDC_1080P_MSLICE_BY_MB_COUNT = 1, |
| VIDC_1080P_MSLICE_BY_BYTE_COUNT = 3, |
| VIDC_1080P_MSLICE_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_display_status{ |
| VIDC_1080P_DISPLAY_STATUS_DECODE_ONLY = 0, |
| VIDC_1080P_DISPLAY_STATUS_DECODE_AND_DISPLAY = 1, |
| VIDC_1080P_DISPLAY_STATUS_DISPLAY_ONLY = 2, |
| VIDC_1080P_DISPLAY_STATUS_DPB_EMPTY = 3, |
| VIDC_1080P_DISPLAY_STATUS_NOOP = 4, |
| VIDC_1080P_DISPLAY_STATUS_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_display_coding{ |
| VIDC_1080P_DISPLAY_CODING_PROGRESSIVE_SCAN = 0, |
| VIDC_1080P_DISPLAY_CODING_INTERLACED = 1, |
| VIDC_1080P_DISPLAY_CODING_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_decode_frame{ |
| VIDC_1080P_DECODE_FRAMETYPE_NOT_CODED = 0, |
| VIDC_1080P_DECODE_FRAMETYPE_I = 1, |
| VIDC_1080P_DECODE_FRAMETYPE_P = 2, |
| VIDC_1080P_DECODE_FRAMETYPE_B = 3, |
| VIDC_1080P_DECODE_FRAMETYPE_OTHERS = 4, |
| VIDC_1080P_DECODE_FRAMETYPE_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080P_decode_frame_correct_type { |
| VIDC_1080P_DECODE_NOT_CORRECT = 0, |
| VIDC_1080P_DECODE_CORRECT = 1, |
| VIDC_1080P_DECODE_APPROX_CORRECT = 2, |
| VIDC_1080P_DECODE_CORRECTTYPE_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_encode_frame{ |
| VIDC_1080P_ENCODE_FRAMETYPE_NOT_CODED = 0, |
| VIDC_1080P_ENCODE_FRAMETYPE_I = 1, |
| VIDC_1080P_ENCODE_FRAMETYPE_P = 2, |
| VIDC_1080P_ENCODE_FRAMETYPE_B = 3, |
| VIDC_1080P_ENCODE_FRAMETYPE_SKIPPED = 4, |
| VIDC_1080P_ENCODE_FRAMETYPE_OTHERS = 5, |
| VIDC_1080P_ENCODE_FRAMETYPE_32BIT = 0x7FFFFFFF |
| |
| }; |
| |
| enum vidc_1080p_decode_idc_format { |
| VIDC_1080P_IDCFORMAT_MONOCHROME = 0, |
| VIDC_1080P_IDCFORMAT_420 = 1, |
| VIDC_1080P_IDCFORMAT_422 = 2, |
| VIDC_1080P_IDCFORMAT_444 = 3, |
| VIDC_1080P_IDCFORMAT_OTHERS = 4, |
| VIDC_1080P_IDCFORMAT_32BIT = 0x7FFFFFFF |
| }; |
| |
| #define VIDC_1080P_PROFILE_MPEG4_SIMPLE 0x00000000 |
| #define VIDC_1080P_PROFILE_MPEG4_ADV_SIMPLE 0x00000001 |
| |
| #define VIDC_1080P_PROFILE_H264_MAIN 0x00000000 |
| #define VIDC_1080P_PROFILE_H264_HIGH 0x00000001 |
| #define VIDC_1080P_PROFILE_H264_BASELINE 0x00000002 |
| |
| |
| enum vidc_1080p_decode{ |
| VIDC_1080P_DEC_TYPE_SEQ_HEADER = 0x00010000, |
| VIDC_1080P_DEC_TYPE_FRAME_DATA = 0x00020000, |
| VIDC_1080P_DEC_TYPE_LAST_FRAME_DATA = 0x00030000, |
| VIDC_1080P_DEC_TYPE_INIT_BUFFERS = 0x00040000, |
| VIDC_1080P_DEC_TYPE_FRAME_START_REALLOC = 0x00050000, |
| VIDC_1080P_DEC_TYPE_32BIT = 0x7FFFFFFF |
| }; |
| enum vidc_1080p_encode{ |
| VIDC_1080P_ENC_TYPE_SEQ_HEADER = 0x00010000, |
| VIDC_1080P_ENC_TYPE_FRAME_DATA = 0x00020000, |
| VIDC_1080P_ENC_TYPE_LAST_FRAME_DATA = 0x00030000, |
| VIDC_1080P_ENC_TYPE_32BIT = 0x7FFFFFFF |
| }; |
| struct vidc_1080p_dec_seq_start_param{ |
| u32 cmd_seq_num; |
| u32 inst_id; |
| u32 shared_mem_addr_offset; |
| u32 stream_buffer_addr_offset; |
| u32 stream_buffersize; |
| u32 stream_frame_size; |
| u32 descriptor_buffer_addr_offset; |
| u32 descriptor_buffer_size; |
| }; |
| struct vidc_1080p_dec_frame_start_param{ |
| u32 cmd_seq_num; |
| u32 inst_id; |
| u32 shared_mem_addr_offset; |
| u32 stream_buffer_addr_offset; |
| u32 stream_buffersize; |
| u32 stream_frame_size; |
| u32 descriptor_buffer_addr_offset; |
| u32 descriptor_buffer_size; |
| u32 release_dpb_bit_mask; |
| u32 dpb_count; |
| u32 dpb_flush; |
| u32 dmx_disable; |
| enum vidc_1080p_decode decode; |
| }; |
| struct vidc_1080p_dec_init_buffers_param{ |
| u32 cmd_seq_num; |
| u32 inst_id; |
| u32 shared_mem_addr_offset; |
| u32 dpb_count; |
| u32 dmx_disable; |
| }; |
| struct vidc_1080p_seq_hdr_info{ |
| u32 img_size_x; |
| u32 img_size_y; |
| u32 dec_frm_size; |
| u32 min_num_dpb; |
| u32 min_luma_dpb_size; |
| u32 min_chroma_dpb_size; |
| u32 profile; |
| u32 level; |
| u32 disp_progressive; |
| u32 disp_crop_exists; |
| u32 dec_progressive; |
| u32 dec_crop_exists; |
| u32 crop_right_offset; |
| u32 crop_left_offset; |
| u32 crop_bottom_offset; |
| u32 crop_top_offset; |
| u32 data_partition; |
| }; |
| struct vidc_1080p_enc_seq_start_param{ |
| u32 cmd_seq_num; |
| u32 inst_id; |
| u32 shared_mem_addr_offset; |
| u32 stream_buffer_addr_offset; |
| u32 stream_buffer_size; |
| }; |
| struct vidc_1080p_enc_frame_start_param{ |
| u32 cmd_seq_num; |
| u32 inst_id; |
| u32 shared_mem_addr_offset; |
| u32 current_y_addr_offset; |
| u32 current_c_addr_offset; |
| u32 stream_buffer_addr_offset; |
| u32 stream_buffer_size; |
| u32 intra_frame; |
| u32 input_flush; |
| enum vidc_1080p_encode encode; |
| }; |
| struct vidc_1080p_enc_frame_info{ |
| u32 enc_frame_size; |
| u32 enc_picture_count; |
| u32 enc_write_pointer; |
| u32 enc_luma_address; |
| u32 enc_chroma_address; |
| enum vidc_1080p_encode_frame enc_frame; |
| u32 meta_data_exists; |
| }; |
| struct vidc_1080p_dec_disp_info{ |
| u32 disp_resl_change; |
| u32 dec_resl_change; |
| u32 reconfig_flush_done; |
| u32 img_size_x; |
| u32 img_size_y; |
| u32 display_y_addr; |
| u32 display_c_addr; |
| u32 decode_y_addr; |
| u32 decode_c_addr; |
| u32 tag_top; |
| u32 pic_time_top; |
| u32 tag_bottom; |
| u32 pic_time_bottom; |
| u32 metadata_exists; |
| u32 disp_crop_exists; |
| u32 dec_crop_exists; |
| u32 crop_right_offset; |
| u32 crop_left_offset; |
| u32 crop_bottom_offset; |
| u32 crop_top_offset; |
| u32 input_bytes_consumed; |
| u32 input_is_interlace; |
| u32 input_frame_num; |
| enum vidc_1080p_display_status display_status; |
| enum vidc_1080p_display_status decode_status; |
| enum vidc_1080p_display_coding display_coding; |
| enum vidc_1080p_display_coding decode_coding; |
| enum vidc_1080P_decode_frame_correct_type display_correct; |
| enum vidc_1080P_decode_frame_correct_type decode_correct; |
| enum vidc_1080p_decode_frame input_frame; |
| }; |
| void vidc_1080p_do_sw_reset(enum vidc_1080p_reset init_flag); |
| void vidc_1080p_release_sw_reset(void); |
| void vidc_1080p_clear_interrupt(void); |
| void vidc_1080p_set_host2risc_cmd( |
| enum vidc_1080p_host2risc_cmd host2risc_command, |
| u32 host2risc_arg1, u32 host2risc_arg2, |
| u32 host2risc_arg3, u32 host2risc_arg4); |
| void vidc_1080p_get_risc2host_cmd(u32 *pn_risc2host_command, |
| u32 *pn_risc2host_arg1, u32 *pn_risc2host_arg2, |
| u32 *pn_risc2host_arg3, u32 *pn_risc2host_arg4); |
| void vidc_1080p_get_risc2host_cmd_status(u32 err_status, |
| u32 *dec_err_status, u32 *disp_err_status); |
| void vidc_1080p_clear_risc2host_cmd(void); |
| void vidc_1080p_get_fw_version(u32 *pn_fw_version); |
| void vidc_1080p_get_fw_status(u32 *pn_fw_status); |
| void vidc_1080p_init_memory_controller(u32 dram_base_addr_a, |
| u32 dram_base_addr_b); |
| void vidc_1080p_get_memory_controller_status(u32 *pb_mc_abusy, |
| u32 *pb_mc_bbusy); |
| void vidc_1080p_set_h264_decode_buffers(u32 dpb, u32 dec_vert_nb_mv_offset, |
| u32 dec_nb_ip_offset, u32 *pn_dpb_luma_offset, |
| u32 *pn_dpb_chroma_offset, u32 *pn_mv_buffer_offset); |
| void vidc_1080p_set_decode_recon_buffers(u32 recon_buffer, u32 *pn_dec_luma, |
| u32 *pn_dec_chroma); |
| void vidc_1080p_set_mpeg4_divx_decode_work_buffers(u32 nb_dcac_buffer_offset, |
| u32 upnb_mv_buffer_offset, u32 sub_anchor_buffer_offset, |
| u32 overlay_transform_buffer_offset, u32 stx_parser_buffer_offset); |
| void vidc_1080p_set_h263_decode_work_buffers(u32 nb_dcac_buffer_offset, |
| u32 upnb_mv_buffer_offset, u32 sub_anchor_buffer_offset, |
| u32 overlay_transform_buffer_offset); |
| void vidc_1080p_set_vc1_decode_work_buffers(u32 nb_dcac_buffer_offset, |
| u32 upnb_mv_buffer_offset, u32 sub_anchor_buffer_offset, |
| u32 overlay_transform_buffer_offset, u32 bitplain1Buffer_offset, |
| u32 bitplain2Buffer_offset, u32 bitplain3Buffer_offset); |
| void vidc_1080p_set_encode_recon_buffers(u32 recon_buffer, u32 *pn_enc_luma, |
| u32 *pn_enc_chroma); |
| void vidc_1080p_set_h264_encode_work_buffers(u32 up_row_mv_buffer_offset, |
| u32 direct_colzero_flag_buffer_offset, |
| u32 upper_intra_md_buffer_offset, |
| u32 upper_intra_pred_buffer_offset, u32 nbor_infor_buffer_offset, |
| u32 mb_info_offset); |
| void vidc_1080p_set_h263_encode_work_buffers(u32 up_row_mv_buffer_offset, |
| u32 up_row_inv_quanti_coeff_buffer_offset); |
| void vidc_1080p_set_mpeg4_encode_work_buffers(u32 skip_flag_buffer_offset, |
| u32 up_row_inv_quanti_coeff_buffer_offset, u32 upper_mv_offset); |
| void vidc_1080p_set_encode_frame_size(u32 hori_size, u32 vert_size); |
| void vidc_1080p_set_encode_profile_level(u32 encode_profile, u32 enc_level); |
| void vidc_1080p_set_encode_field_picture_structure(u32 enc_field_picture); |
| void vidc_1080p_set_decode_mpeg4_pp_filter(u32 lf_enables); |
| void vidc_1080p_set_decode_qp_save_control(u32 enable_q_pout); |
| void vidc_1080p_get_returned_channel_inst_id(u32 *pn_rtn_chid); |
| void vidc_1080p_clear_returned_channel_inst_id(void); |
| void vidc_1080p_get_decode_seq_start_result( |
| struct vidc_1080p_seq_hdr_info *seq_hdr_info); |
| void vidc_1080p_get_decoded_frame_size(u32 *pn_decoded_size); |
| void vidc_1080p_get_display_frame_result( |
| struct vidc_1080p_dec_disp_info *dec_disp_info); |
| void vidc_1080p_get_decode_frame( |
| enum vidc_1080p_decode_frame *pe_frame); |
| void vidc_1080p_get_decode_frame_result( |
| struct vidc_1080p_dec_disp_info *dec_disp_info); |
| void vidc_1080p_decode_seq_start_ch0( |
| struct vidc_1080p_dec_seq_start_param *param); |
| void vidc_1080p_decode_seq_start_ch1( |
| struct vidc_1080p_dec_seq_start_param *param); |
| void vidc_1080p_decode_init_buffers_ch0 |
| (struct vidc_1080p_dec_init_buffers_param *param); |
| void vidc_1080p_decode_init_buffers_ch1( |
| struct vidc_1080p_dec_init_buffers_param *param); |
| void vidc_1080p_decode_frame_start_ch0( |
| struct vidc_1080p_dec_frame_start_param *param); |
| void vidc_1080p_decode_frame_start_ch1( |
| struct vidc_1080p_dec_frame_start_param *param); |
| void vidc_1080p_set_dec_resolution_ch0(u32 width, u32 height); |
| void vidc_1080p_set_dec_resolution_ch1(u32 width, u32 height); |
| void vidc_1080p_get_encode_frame_info( |
| struct vidc_1080p_enc_frame_info *frame_info); |
| void vidc_1080p_encode_seq_start_ch0( |
| struct vidc_1080p_enc_seq_start_param *param); |
| void vidc_1080p_encode_seq_start_ch1( |
| struct vidc_1080p_enc_seq_start_param *param); |
| void vidc_1080p_encode_frame_start_ch0( |
| struct vidc_1080p_enc_frame_start_param *param); |
| void vidc_1080p_encode_frame_start_ch1( |
| struct vidc_1080p_enc_frame_start_param *param); |
| void vidc_1080p_set_encode_picture(u32 ifrm_ctrl, u32 number_b); |
| void vidc_1080p_set_encode_multi_slice_control( |
| enum vidc_1080p_MSlice_selection multiple_slice_selection, |
| u32 mslice_mb, u32 mslice_byte); |
| void vidc_1080p_set_encode_circular_intra_refresh(u32 cir_num); |
| void vidc_1080p_set_encode_input_frame_format( |
| enum vidc_1080p_memory_access_method memory_format); |
| void vidc_1080p_set_encode_padding_control(u32 pad_ctrl_on, |
| u32 cr_pad_val, u32 cb_pad_val, u32 luma_pad_val); |
| void vidc_1080p_encode_set_rc_config(u32 enable_frame_level_rc, |
| u32 enable_mb_level_rc_flag, u32 frame_qp); |
| void vidc_1080p_encode_set_frame_level_rc_params(u32 rc_frame_rate, |
| u32 target_bitrate, u32 reaction_coeff); |
| void vidc_1080p_encode_set_qp_params(u32 max_qp, u32 min_qp); |
| void vidc_1080p_encode_set_mb_level_rc_params(u32 disable_dark_region_as_flag, |
| u32 disable_smooth_region_as_flag , u32 disable_static_region_as_flag, |
| u32 disable_activity_region_flag); |
| void vidc_1080p_get_qp(u32 *pn_frame_qp); |
| void vidc_1080p_set_h264_encode_entropy( |
| enum vidc_1080p_entropy_sel entropy_sel); |
| void vidc_1080p_set_h264_encode_loop_filter( |
| enum vidc_1080p_DBConfig db_config, u32 slice_alpha_offset, |
| u32 slice_beta_offset); |
| void vidc_1080p_set_h264_encoder_p_frame_ref_count(u32 max_reference); |
| void vidc_1080p_set_h264_encode_8x8transform_control(u32 enable_8x8transform); |
| void vidc_1080p_set_mpeg4_encode_quarter_pel_control( |
| u32 enable_mpeg4_quarter_pel); |
| void vidc_1080p_set_device_base_addr(u8 *mapped_va); |
| void vidc_1080p_get_intra_bias(u32 *intra_bias); |
| void vidc_1080p_set_intra_bias(u32 intra_bias); |
| void vidc_1080p_get_bi_directional_bias(u32 *bi_directional_bias); |
| void vidc_1080p_set_bi_directional_bias(u32 bi_directional_bias); |
| void vidc_1080p_get_encoder_sequence_header_size(u32 *seq_header_size); |
| void vidc_1080p_get_intermedia_stage_debug_counter( |
| u32 *intermediate_stage_counter); |
| void vidc_1080p_get_exception_status(u32 *exception_status); |
| void vidc_1080p_frame_start_realloc(u32 instance_id); |
| #endif |