ref: c6af5fbe1f560644ce362b77c13aecd1412f9fbf
dir: /g1regs.h/
enum { /* SWREG1 */ SW_DEC_TIMEOUT = 1<<18, SW_DEC_ERROR_INT = 1<<16, SW_DEC_BUFFER_INT = 1<<14, SW_DEC_RDY_INT = 1<<12, SW_DEC_ABORT_INT = 1<<11, SW_DEC_IRQ = 1<<8, SW_DEC_ABORT_E = 1<<5, SW_DEC_IRQ_DIS = 1<<4, SW_DEC_E = 1<<0, /* SWREG2 */ SW_DEC_TIMEOUT_E = 1<<23, /* enable timeouts */ SW_DEC_STRSWAP32_E = 1<<22, /* = 1 (64-bit) */ SW_DEC_STRENDIAN_E = 1<<21, /* = 1 (little endian) */ SW_DEC_INSWAP32_E = 1<<20, /* = 1 (64-bit) */ SW_DEC_OUTSWAP32_E = 1<<19, /* = 1 (64-bit) */ SW_DEC_CLK_GATE_E = 1<<10, /* clock gate (0=gated 1=running) */ SW_DEC_IN_ENDIAN = 1<<9, /* = 1 (little endian) */ SW_DEC_OUT_ENDIAN = 1<<8, /* = 1 (little endian) */ SW_DEC_MAX_BURST = 0, /* = 16 for AIX is the max */ /* SWREG3 */ SW_PIC_INTERLACE_E = 1<<23, /* = !sps.frame_mbs_only_flag && * (sps.mb_adaptive_frame_field_flag || pic.field_pic_flag) */ SW_PIC_FIELDMODE_E = 1<<22, /* = !sps.frame_mbs_only_flag && pic.field_pic_flag */ SW_PIC_TOPFIELD_E = 1<<19, /* = !sps.frame_mbs_only_flag && !pic.bottom_field_flag */ SW_WRITE_MVS_E = 1<<12, /* = sps.profile_idc > 66 && sps.nal_ref_idc != 0 */ SW_SEQ_MBAFF_E = 1<<10, /* = sps.mb_adaptive_frame_field_flag */ SW_PICORD_COUNT_E = 1<<9, /* = sps.profile_idc > 66 (higher than baseline profile) */ SW_DEC_AXI_WR_ID = 0, /* AIX id, 0xff for autoalloc */ /* SWREG4 */ SW_PIC_MB_WIDTH = 23, /* = sps.pic_width_in_mbs_minus1 + 1 */ SW_PIC_MB_HEIGHT_P = 11, /* = sps.pic_height_in_map_units_minus1 + 1 */ SW_REF_FRAMES = 0, /* = sps.max_num_ref_frames */ /* SWREG5 */ SW_STRM_START_BIT = 26, /* = 0 (always starting at byte boundary) */ SW_TYPE1_QUANT_E = 1<<24, /* = pps.pic_scaling_matrix_present_flag */ SW_CH_QP_OFFSET = 19, /* = pps.chroma_qp_index_offset */ SW_CH_QP_OFFSET2 = 14, /* = pps.second_chroma_qp_index_offset */ SW_FIELDPIC_FLAG_E = 1<<0, /* = !sps.frame_mbs_only_flag */ /* SWREG6 */ SW_START_CODE_E = 1<<31, /* = 1 */ SW_INIT_QP = 25, /* = pps.pic_init_qp_minus26 + 26 */ SW_STREAM_LEN = 0, /* = size of the available input in bytes */ /* SWREG7 */ SW_CABAC_E = 1<<31, /* = pps.entropy_coding_mode_flag */ SW_BLACKWHITE_E = 1<<30, /* = sps.chroma_format_idc == 0 && sps.profile_idc >= 100 (>= high profile) */ SW_DIR_8X8_INFER_E = 1<<29, /* = sps.direct_8x8_inference_flag */ SW_WEIGHT_PRED_E = 1<<28, /* = pps.weighted_pred_flag */ SW_WEIGHT_BIPR_IDC = 26, /* = pps.weighted_bipred_idc */ SW_FRAMENUM_LEN = 16, /* = sps.log2_max_frame_num_minus4 + 4 */ SW_FRAMENUM = 0, /* = pic.frame_num */ /* SWREG8 */ SW_CONST_INTRA_E = 1<<31, /* = pps.constrained_intra_pred_flag */ SW_FILT_CTRL_PRES = 1<<30, /* = pps.deblocking_filter_control_present_flag */ SW_RDPIC_CNT_PRES = 1<<29, /* = pps.redundant_pic_cnt_present_flag */ SW_8X8TRANS_FLAG_E = 1<<28, /* = pps.transform_8x8_mode_flag */ SW_REFPIC_MK_LEN = 17, /* = size (in bits) of pic.dec_ref_pic_marking */ SW_IDR_PIC_E = 1<<16, /* = pic.nal_unit_type == 5 (IDR slice) */ SW_IDR_PIC_ID = 0, /* = pic.idr_pic_id */ /* SWREG9 */ SW_PPS_ID = 24, /* = pps.pic_parameter_set_id */ SW_REFIDX1_ACTIVE = 19, /* = pps.num_ref_idx_l1_default_active_minus1 + 1 */ SW_REFIDX0_ACTIVE = 14, /* = pps.num_ref_idx_l0_default_active_minus1 + 1 */ SW_POC_LENGTH = 0, /* = sum of sizes (in bits) of: * 1) pic.pic_order_cnt_lsb * 2) pic.delta_pic_order_cnt_bottom * 3) pic.delta_pic_order_cnt0 * 4) pic.delta_pic_order_cnt1 */ /* SWREG12 */ SW_RLC_VLC_BASE = 0, /* current pointer to the stream */ /* SWREG13 */ SW_DEC_OUT_BASE = 0, /* output buffer */ /* SWREG14 ... SWREG29 */ SW_REFERx_BASE = 0, SW_REFERx_FIELD_E = 1<<1, SW_REFERx_TOPC_E = 1<<0, /* SWREG30 ... SWREG37 */ SW_REFERx_NBR_NEXT = 16, /* SWREG38 */ SW_REFER_LTERM_E = 0, /* long term flag for ref pic id * 31:15 set to 1 if frame is being decoded, 31 is picid=0, 30 picid=1 etc * 31:0 set to 1 if field decode, 31 is picid=0 top, 30 picid=0 *bottom* etc */ /* SWREG39 */ SW_REFER_VALID_E = 0, /* valid flag for ref pic id ^ */ /* SWREG40 */ SW_QTABLE_BASE = 0, /* pointer to * 1) CABAC init data (pps.entropy_coding_mode_flag != 0) * (see cabac_gen.h) * 2) picture order count table (sps.profile_idc > 66) * (see 8.2.1.1 - 8.2.1.3) * alternating top and bottom field order counts * 32 + 2 - 32-bit ints * 3) scaling lists (sps.scaling_matrix_present_flag != 0 || * pps.pic_scaling_matrix_present_flag != 0) * 4x4 + 8x8 - after inverse scanning process (8.5.6) * [6][16] + [6][64] - [3][2][1][0][7][6][5][4]... (little endia, 64bit) */ /* SWREG41 */ SW_DIR_MV_BASE = 0, /* destination for motion vector data (sps.profile_idc > 66 && sps.nal_ref_idc != 0) * max size is 416 bytes/MB (that's a bit more than 3Mb for full hd frame) */ /* SWREG42 ... SWREG47 */ SW_BINIT_RLIST_Bx = 5, SW_BINIT_RLIST_Fx = 0, /* SWREG49 */ SW_PRED_BC_TAP_0_0 = 22, /* = 1 (fixed 6-tap filter values) */ SW_PRED_BC_TAP_0_1 = 12, /* = -5 ^ */ SW_PRED_BC_TAP_0_2 = 2, /* = 20 ^ */ /* SWREG58 */ SW_DEC_MULTICORE_E = 1<<30, /* is this even usable? */ SW_DEC_WRITESTAT_E = 1<<29, };