summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean V Kelley <seanvk@posteo.de>2017-01-17 15:01:12 -0800
committerSean V Kelley <seanvk@posteo.de>2017-01-17 15:01:12 -0800
commitbc6989198b41fd0f7a1716fc4bc5049fbea3e670 (patch)
tree6f7abc03e3f5311e83d3781008a6a93d9e49c92e
parente7b6a198121d567a559371dbcf88b65561ccf94d (diff)
Revert "ENC: add VME/MFX context init for AVC encoder"
-rwxr-xr-xsrc/gen9_avc_encoder.c298
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;
-}