diff options
author | ottingerg <g.ottinger@gmx.at> | 2018-05-11 21:37:11 +0200 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2018-05-18 16:35:35 +0800 |
commit | 31775df594464fdb6c85e19305f699f800d037d4 (patch) | |
tree | 6fcc5b44a05cd0b540107b86a64851f474333a91 | |
parent | c6da3489fba6d400dd89959cace9db8d25e6a6b6 (diff) | |
download | libva-intel-driver-31775df594464fdb6c85e19305f699f800d037d4.tar.gz |
make sure reference objects are placed in the same slot / remove asserts
-rw-r--r-- | src/i965_encoder.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/i965_encoder.c b/src/i965_encoder.c index 8cfdfe59..7bf20ea1 100644 --- a/src/i965_encoder.c +++ b/src/i965_encoder.c @@ -1139,14 +1139,12 @@ intel_encoder_check_vp8_parameter(VADriverContextP ctx, int is_key_frame = !pic_param->pic_flags.bits.frame_type; obj_surface = SURFACE(pic_param->reconstructed_frame); - assert(obj_surface); /* It is possible the store buffer isn't allocated yet */ if (!obj_surface) goto error; encode_state->reconstructed_object = obj_surface; obj_buffer = BUFFER(pic_param->coded_buf); - assert(obj_buffer && obj_buffer->buffer_store && obj_buffer->buffer_store->bo); if (!obj_buffer || !obj_buffer->buffer_store || !obj_buffer->buffer_store->bo) goto error; @@ -1155,37 +1153,37 @@ intel_encoder_check_vp8_parameter(VADriverContextP ctx, if (!is_key_frame) { - if(!pic_param->ref_flags.bits.no_ref_last) { - assert(pic_param->ref_last_frame != VA_INVALID_SURFACE); + if (!pic_param->ref_flags.bits.no_ref_last) { obj_surface = SURFACE(pic_param->ref_last_frame); - assert(obj_surface && obj_surface->bo); if (!obj_surface || !obj_surface->bo) goto error; encode_state->reference_objects[i++] = obj_surface; + } else { + encode_state->reference_objects[i++] = NULL; } - if(!pic_param->ref_flags.bits.no_ref_gf) { - assert(pic_param->ref_gf_frame != VA_INVALID_SURFACE); + if (!pic_param->ref_flags.bits.no_ref_gf) { obj_surface = SURFACE(pic_param->ref_gf_frame); - assert(obj_surface && obj_surface->bo); if (!obj_surface || !obj_surface->bo) goto error; encode_state->reference_objects[i++] = obj_surface; + } else { + encode_state->reference_objects[i++] = NULL; } - if(!pic_param->ref_flags.bits.no_ref_arf) { - assert(pic_param->ref_arf_frame != VA_INVALID_SURFACE); + if (!pic_param->ref_flags.bits.no_ref_arf) { obj_surface = SURFACE(pic_param->ref_arf_frame); - assert(obj_surface && obj_surface->bo); if (!obj_surface || !obj_surface->bo) goto error; encode_state->reference_objects[i++] = obj_surface; + } else { + encode_state->reference_objects[i++] = NULL; } } |