diff options
author | Sean V Kelley <seanvk@posteo.de> | 2017-01-17 15:01:12 -0800 |
---|---|---|
committer | Sean V Kelley <seanvk@posteo.de> | 2017-01-17 15:01:12 -0800 |
commit | bc6989198b41fd0f7a1716fc4bc5049fbea3e670 (patch) | |
tree | 6f7abc03e3f5311e83d3781008a6a93d9e49c92e | |
parent | e7b6a198121d567a559371dbcf88b65561ccf94d (diff) |
Revert "ENC: add VME/MFX context init for AVC encoder"
This reverts commit 913e82a3331e36bfaea96b41d475ca7cf4ad7bfc.
-rwxr-xr-x | src/gen9_avc_encoder.c | 298 |
1 files changed, 0 insertions, 298 deletions
diff --git a/src/gen9_avc_encoder.c b/src/gen9_avc_encoder.c index 7f73c95..8aff0c8 100755 --- a/src/gen9_avc_encoder.c +++ b/src/gen9_avc_encoder.c @@ -7109,301 +7109,3 @@ gen9_avc_pak_context_destroy(void * context) i965_free_gpe_resource(&avc_ctx->res_direct_mv_buffersr[i]); } } - -static VAStatus -gen9_avc_get_coded_status(VADriverContextP ctx, - struct intel_encoder_context *encoder_context, - struct i965_coded_buffer_segment *coded_buf_seg) -{ - struct encoder_status *avc_encode_status; - - if (!encoder_context || !coded_buf_seg) - return VA_STATUS_ERROR_INVALID_BUFFER; - - avc_encode_status = (struct encoder_status *)coded_buf_seg->codec_private_data; - coded_buf_seg->base.size = avc_encode_status->bs_byte_count; - - return VA_STATUS_SUCCESS; -} - -Bool -gen9_avc_vme_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - /* VME & PAK share the same context */ - struct encoder_vme_mfc_context * vme_context = NULL; - struct generic_encoder_context * generic_ctx = NULL; - struct gen9_avc_encoder_context * avc_ctx = NULL; - struct generic_enc_codec_state * generic_state = NULL; - struct avc_enc_state * avc_state = NULL; - struct encoder_status_buffer_internal *status_buffer; - uint32_t base_offset = offsetof(struct i965_coded_buffer_segment, codec_private_data); - - vme_context = calloc(1, sizeof(struct encoder_vme_mfc_context)); - generic_ctx = calloc(1, sizeof(struct generic_encoder_context)); - avc_ctx = calloc(1, sizeof(struct gen9_avc_encoder_context)); - generic_state = calloc(1, sizeof(struct generic_enc_codec_state)); - avc_state = calloc(1, sizeof(struct avc_enc_state)); - - if(!vme_context || !generic_ctx || !avc_ctx || !generic_state || !avc_state) - goto allocate_structure_failed; - - memset(vme_context,0,sizeof(struct encoder_vme_mfc_context)); - memset(generic_ctx,0,sizeof(struct generic_encoder_context)); - memset(avc_ctx,0,sizeof(struct gen9_avc_encoder_context)); - memset(generic_state,0,sizeof(struct generic_enc_codec_state)); - memset(avc_state,0,sizeof(struct avc_enc_state)); - - encoder_context->vme_context = vme_context; - vme_context->generic_enc_ctx = generic_ctx; - vme_context->private_enc_ctx = avc_ctx; - vme_context->generic_enc_state = generic_state; - vme_context->private_enc_state = avc_state; - - avc_ctx->ctx = ctx; - /* initialize misc ? */ - generic_ctx->use_hw_scoreboard = 1; - generic_ctx->use_hw_non_stalling_scoreboard = 1; - - /* initialize generic state */ - - generic_state->kernel_mode = INTEL_ENC_KERNEL_NORMAL; - generic_state->preset = INTEL_PRESET_RT_SPEED; - generic_state->seq_frame_number = 0; - generic_state->total_frame_number = 0; - generic_state->frame_type = 0; - generic_state->first_frame = 1; - - generic_state->frame_width_in_pixel = 0; - generic_state->frame_height_in_pixel = 0; - generic_state->frame_width_in_mbs = 0; - generic_state->frame_height_in_mbs = 0; - generic_state->frame_width_4x = 0; - generic_state->frame_height_4x = 0; - generic_state->frame_width_16x = 0; - generic_state->frame_height_16x = 0; - generic_state->frame_width_32x = 0; - generic_state->downscaled_width_4x_in_mb = 0; - generic_state->downscaled_height_4x_in_mb = 0; - generic_state->downscaled_width_16x_in_mb = 0; - generic_state->downscaled_height_16x_in_mb = 0; - generic_state->downscaled_width_32x_in_mb = 0; - generic_state->downscaled_height_32x_in_mb = 0; - - generic_state->hme_supported = 1; - generic_state->b16xme_supported = 1; - generic_state->b32xme_supported = 0; - generic_state->hme_enabled = 0; - generic_state->b16xme_enabled = 0; - generic_state->b32xme_enabled = 0; - generic_state->brc_distortion_buffer_supported = 1; - generic_state->brc_constant_buffer_supported = 0; - - - generic_state->frame_rate = 30; - generic_state->brc_allocated = 0; - generic_state->brc_inited = 0; - generic_state->brc_need_reset = 0; - generic_state->is_low_delay = 0; - generic_state->brc_enabled = 0;//default - generic_state->internal_rate_mode = 0; - generic_state->curr_pak_pass = 0; - generic_state->num_pak_passes = MAX_AVC_PAK_PASS_NUM; - generic_state->is_first_pass = 1; - generic_state->is_last_pass = 0; - generic_state->mb_brc_enabled = 0; // enable mb brc - generic_state->brc_roi_enable = 0; - generic_state->brc_dirty_roi_enable = 0; - generic_state->skip_frame_enbale = 0; - - generic_state->target_bit_rate = 0; - generic_state->max_bit_rate = 0; - generic_state->min_bit_rate = 0; - generic_state->init_vbv_buffer_fullness_in_bit = 0; - generic_state->vbv_buffer_size_in_bit = 0; - generic_state->frames_per_100s = 0; - generic_state->gop_size = 0; - generic_state->gop_ref_distance = 0; - generic_state->brc_target_size = 0; - generic_state->brc_mode = 0; - generic_state->brc_init_current_target_buf_full_in_bits = 0.0; - generic_state->brc_init_reset_input_bits_per_frame = 0.0; - generic_state->brc_init_reset_buf_size_in_bits = 0; - generic_state->brc_init_previous_target_buf_full_in_bits = 0; - generic_state->window_size = 0;//default - generic_state->target_percentage = 0; - - generic_state->avbr_curracy = 0; - generic_state->avbr_convergence = 0; - - generic_state->num_skip_frames = 0; - generic_state->size_skip_frames = 0; - - generic_state->num_roi = 0; - generic_state->max_delta_qp = 0; - generic_state->min_delta_qp = 0; - - if (encoder_context->rate_control_mode != VA_RC_NONE && - encoder_context->rate_control_mode != VA_RC_CQP) { - generic_state->brc_enabled = 1; - generic_state->brc_distortion_buffer_supported = 1; - generic_state->brc_constant_buffer_supported = 1; - generic_state->num_pak_passes = MAX_AVC_PAK_PASS_NUM; - } - /*avc state initialization */ - avc_state->mad_enable = 0; - avc_state->mb_disable_skip_map_enable = 0; - avc_state->sfd_enable = 1;//default - avc_state->sfd_mb_enable = 1;//set it true - avc_state->adaptive_search_window_enable = 1;//default - avc_state->mb_qp_data_enable = 0; - avc_state->intra_refresh_i_enable = 0; - avc_state->min_max_qp_enable = 0; - avc_state->skip_bias_adjustment_enable = 0;//default,same as skip_bias_adjustment_supporte? no - - //external input - avc_state->non_ftq_skip_threshold_lut_input_enable = 0; - avc_state->ftq_skip_threshold_lut_input_enable = 0; - avc_state->ftq_override = 0; - - avc_state->direct_bias_adjustment_enable = 0; - avc_state->global_motion_bias_adjustment_enable = 0; - avc_state->disable_sub_mb_partion = 0; - avc_state->arbitrary_num_mbs_in_slice = 0; - avc_state->adaptive_transform_decision_enable = 0;//default - avc_state->skip_check_disable = 0; - avc_state->tq_enable = 0; - avc_state->enable_avc_ildb = 0; - avc_state->mbaff_flag = 0; - avc_state->enable_force_skip = 1;//default - avc_state->suppress_recon_enable = 1;//default - - avc_state->ref_pic_select_list_supported = 1; - avc_state->mb_brc_supported = 1;//?,default - avc_state->multi_pre_enable = 1;//default - avc_state->ftq_enable = 1;//default - avc_state->caf_supported = 1; //default - avc_state->caf_enable = 0; - avc_state->caf_disable_hd = 1;//default - avc_state->skip_bias_adjustment_supported = 1;//default - - avc_state->adaptive_intra_scaling_enable = 1;//default - avc_state->old_mode_cost_enable = 0;//default - avc_state->multi_ref_qp_enable = 1;//default - avc_state->weighted_ref_l0_enable = 1;//default - avc_state->weighted_ref_l1_enable = 1;//default - avc_state->weighted_prediction_supported = 0; - avc_state->brc_split_enable = 0; - avc_state->slice_level_report_supported = 0; - - avc_state->fbr_bypass_enable = 1;//default - avc_state->field_scaling_output_interleaved = 0; - avc_state->mb_variance_output_enable = 0; - avc_state->mb_pixel_average_output_enable = 0; - avc_state->rolling_intra_refresh_enable = 0;// same as intra_refresh_i_enable? - avc_state->mbenc_curbe_set_in_brc_update = 0; - avc_state->rounding_inter_enable = 1; //default - avc_state->adaptive_rounding_inter_enable = 1;//default - - avc_state->mbenc_i_frame_dist_in_use = 0; - avc_state->mb_status_supported = 1; //set in intialization for gen9 - avc_state->mb_status_enable = 0; - avc_state->mb_vproc_stats_enable = 0; - avc_state->flatness_check_enable = 0; - avc_state->flatness_check_supported = 1;//default - avc_state->block_based_skip_enable = 0; - avc_state->use_widi_mbenc_kernel = 0; - avc_state->kernel_trellis_enable = 0; - avc_state->generic_reserved = 0; - - avc_state->rounding_value = 0; - avc_state->rounding_inter_p = 255;//default - avc_state->rounding_inter_b = 255; //default - avc_state->rounding_inter_b_ref = 255; //default - avc_state->min_qp_i = INTEL_AVC_MIN_QP; - avc_state->min_qp_p = INTEL_AVC_MIN_QP; - avc_state->min_qp_b = INTEL_AVC_MIN_QP; - avc_state->max_qp_i = INTEL_AVC_MAX_QP; - avc_state->max_qp_p = INTEL_AVC_MAX_QP; - avc_state->max_qp_b = INTEL_AVC_MAX_QP; - - memset(avc_state->non_ftq_skip_threshold_lut,0,52*sizeof(uint8_t)); - memset(avc_state->ftq_skip_threshold_lut,0,52*sizeof(uint8_t)); - memset(avc_state->lamda_value_lut,0,52*2*sizeof(uint8_t)); - - avc_state->intra_refresh_qp_threshold = 0; - avc_state->trellis_flag = 0; - avc_state->hme_mv_cost_scaling_factor = 0; - avc_state->slice_height = 1; - avc_state->slice_num = 1; - memset(avc_state->dist_scale_factor_list0,0,32*sizeof(uint32_t)); - avc_state->bi_weight = 0; - avc_state->brc_const_data_surface_width = 64; - avc_state->brc_const_data_surface_height = 44; - - avc_state->num_refs[0] = 0; - avc_state->num_refs[1] = 0; - memset(avc_state->list_ref_idx,0,32*2*sizeof(uint32_t)); - memset(avc_state->top_field_poc,0,NUM_MFC_AVC_DMV_BUFFERS*sizeof(int32_t)); - avc_state->tq_rounding = 0; - avc_state->zero_mv_threshold = 0; - avc_state->slice_second_levle_batch_buffer_in_use = 0; - - //1. seq/pic/slice - - /* the definition of status buffer offset for Encoder */ - - status_buffer = &avc_ctx->status_buffer; - memset(status_buffer, 0,sizeof(struct encoder_status_buffer_internal)); - - status_buffer->base_offset = base_offset; - status_buffer->bs_byte_count_offset = base_offset + offsetof(struct encoder_status, bs_byte_count); - status_buffer->image_status_ctrl_offset = base_offset + offsetof(struct encoder_status, image_status_ctrl); - status_buffer->media_index_offset = base_offset + offsetof(struct encoder_status, media_index); - - status_buffer->status_buffer_size = sizeof(struct encoder_status); - status_buffer->bs_frame_reg_offset = MFC_BITSTREAM_BYTECOUNT_FRAME_REG; - status_buffer->image_status_ctrl_reg_offset = MFC_IMAGE_STATUS_CTRL_REG; - - gen9_avc_kernel_init(ctx,encoder_context); - encoder_context->vme_context = vme_context; - encoder_context->vme_pipeline = gen9_avc_vme_pipeline; - encoder_context->vme_context_destroy = gen9_avc_vme_context_destroy; - - return true; - -allocate_structure_failed: - - if(vme_context) - free(vme_context); - - if(generic_ctx) - free(generic_ctx); - - if(avc_ctx) - free(avc_ctx); - - if(generic_state) - free(generic_state); - - if(avc_state) - free(avc_state); - - return false; -} - -Bool -gen9_avc_pak_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context) -{ - /* VME & PAK share the same context */ - struct encoder_vme_mfc_context * pak_context = (struct encoder_vme_mfc_context *)encoder_context->vme_context; - - if (!pak_context) - return false; - - encoder_context->mfc_context = pak_context; - encoder_context->mfc_context_destroy = gen9_avc_pak_context_destroy; - encoder_context->mfc_pipeline = gen9_avc_pak_pipeline; - encoder_context->mfc_brc_prepare = gen9_avc_pak_brc_prepare; - encoder_context->get_status = gen9_avc_get_coded_status; - return true; -} |