summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Charles <daniel.charles@intel.com>2017-04-12 18:42:27 -0700
committerXiang, Haihao <haihao.xiang@intel.com>2017-06-12 13:13:09 +0800
commit5e52681d089e89a1d3563d52c9524ec419311792 (patch)
tree96e92f6205c913c827bc73074be01587e2790c5a /src
parent27cb1a9546293e507c760a13890aadce53ab03b4 (diff)
downloadlibva-intel-driver-5e52681d089e89a1d3563d52c9524ec419311792.tar.gz
gen9_vp9_encoder: fix parameters sent to the shaders
buffer fullness intially has to be set to half the target bitrate. Also the scaled 4x width and height in mb has to be updated properly for distortion buffer to operate properly v2: remove downscaled_width_4x_in_mb and dowscaled_height_4x_in_mb from gen9_encoder_context_vp9 Fixes #132 TEST="see bug for proper test analysis" Signed-off-by: Daniel Charles <daniel.charles@intel.com> (cherry picked from commit dbe582c2361d3bb6a04968a2bc21b62bede9c46e)
Diffstat (limited to 'src')
-rw-r--r--src/gen9_vp9_encoder.c5
-rw-r--r--src/gen9_vp9_encoder.h3
2 files changed, 3 insertions, 5 deletions
diff --git a/src/gen9_vp9_encoder.c b/src/gen9_vp9_encoder.c
index 42dbd37b..f29bbbe1 100644
--- a/src/gen9_vp9_encoder.c
+++ b/src/gen9_vp9_encoder.c
@@ -1076,6 +1076,7 @@ void gen9_vp9_set_curbe_brc(VADriverContextP ctx,
*param->pbrc_init_reset_buf_size_in_bits = cmd->dw6.buf_size;
*param->pbrc_init_reset_input_bits_per_frame = dInputBitsPerFrame;
+ *param->pbrc_init_current_target_buf_full_in_bits = cmd->dw6.buf_size >> 1;
cmd->dw18.pframe_deviation_threshold0 = (uint32_t)(-50 * pow(0.90, dbps_ratio));
cmd->dw18.pframe_deviation_threshold1 = (uint32_t)(-50 * pow(0.66, dbps_ratio));
@@ -1365,8 +1366,8 @@ gen9_vp9_brc_intra_dist_kernel(VADriverContextP ctx,
gen8_gpe_setup_interface_data(ctx, gpe_context);
memset(&kernel_walker_param, 0, sizeof(kernel_walker_param));
- kernel_walker_param.resolution_x = vme_context->downscaled_width_in_mb4x;
- kernel_walker_param.resolution_y = vme_context->downscaled_height_in_mb4x;
+ kernel_walker_param.resolution_x = vp9_state->downscaled_width_4x_in_mb;
+ kernel_walker_param.resolution_y = vp9_state->downscaled_height_4x_in_mb;
kernel_walker_param.no_dependency = 1;
gen9_init_media_object_walker_parameter(encoder_context, &kernel_walker_param, &media_object_walker_param);
diff --git a/src/gen9_vp9_encoder.h b/src/gen9_vp9_encoder.h
index 4fa70521..242f31fb 100644
--- a/src/gen9_vp9_encoder.h
+++ b/src/gen9_vp9_encoder.h
@@ -1666,9 +1666,6 @@ struct gen9_encoder_context_vp9 {
unsigned int hme_supported;
unsigned int b32xme_supported;
- unsigned int downscaled_width_in_mb4x;
- unsigned int downscaled_height_in_mb4x;
-
void (*pfn_set_sample_state_dys)(
VADriverContextP ctx,
struct encode_state *encode_state,