It also fixes a wrong assert() in gen8_mfc.c
Signed-off-by: Xiang, Haihao <[email protected]>
---
src/gen8_mfc.c | 2 +-
src/i965_drv_video.c | 29 +++--------------------------
src/i965_drv_video.h | 6 ------
3 files changed, 4 insertions(+), 33 deletions(-)
diff --git a/src/gen8_mfc.c b/src/gen8_mfc.c
index 2bedcad..fc11e63 100644
--- a/src/gen8_mfc.c
+++ b/src/gen8_mfc.c
@@ -3221,7 +3221,7 @@
gen8_mfc_jpeg_pipeline_picture_programing(VADriverContextP ctx,
//I dont think I need this for loop. Just to be consistent with other
encoding logic...
for(i = 0; i < encode_state->num_slice_params_ext; i++) {
- assert(encode_state->slice_params &&
encode_state->slice_params_ext[i]->buffer);
+ assert(encode_state->slice_params_ext &&
encode_state->slice_params_ext[i]->buffer);
slice_param = (VAEncSliceParameterBufferJPEG
*)encode_state->slice_params_ext[i]->buffer;
for(j = 0; j < encode_state->slice_params_ext[i]->num_elements; j++) {
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index 1c24d00..65d5b02 100644
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -2067,18 +2067,9 @@ i965_destroy_context(struct object_heap *heap, struct
object_base *obj)
i965_release_buffer_store(&obj_context->codec_state.proc.pipeline_param);
} else if (obj_context->codec_type == CODEC_ENC) {
- assert(obj_context->codec_state.encode.num_slice_params <=
obj_context->codec_state.encode.max_slice_params);
- i965_release_buffer_store(&obj_context->codec_state.encode.pic_param);
- i965_release_buffer_store(&obj_context->codec_state.encode.seq_param);
-
i965_release_buffer_store(&obj_context->codec_state.encode.q_matrix);
i965_release_buffer_store(&obj_context->codec_state.encode.huffman_table);
- for (i = 0; i < obj_context->codec_state.encode.num_slice_params; i++)
-
i965_release_buffer_store(&obj_context->codec_state.encode.slice_params[i]);
-
- free(obj_context->codec_state.encode.slice_params);
-
assert(obj_context->codec_state.encode.num_slice_params_ext <=
obj_context->codec_state.encode.max_slice_params_ext);
i965_release_buffer_store(&obj_context->codec_state.encode.pic_param_ext);
i965_release_buffer_store(&obj_context->codec_state.encode.seq_param_ext);
@@ -2236,9 +2227,6 @@ i965_CreateContext(VADriverContextP ctx,
obj_context->codec_type = CODEC_ENC;
memset(&obj_context->codec_state.encode, 0,
sizeof(obj_context->codec_state.encode));
obj_context->codec_state.encode.current_render_target =
VA_INVALID_ID;
- obj_context->codec_state.encode.max_slice_params = NUM_SLICES;
- obj_context->codec_state.encode.slice_params =
calloc(obj_context->codec_state.encode.max_slice_params,
-
sizeof(*obj_context->codec_state.encode.slice_params));
obj_context->codec_state.encode.max_packed_header_params_ext =
NUM_SLICES;
obj_context->codec_state.encode.packed_header_params_ext =
calloc(obj_context->codec_state.encode.max_packed_header_params_ext,
@@ -2829,14 +2817,6 @@ i965_BeginPicture(VADriverContextP ctx,
if (obj_context->codec_type == CODEC_PROC) {
obj_context->codec_state.proc.current_render_target = render_target;
} else if (obj_context->codec_type == CODEC_ENC) {
- i965_release_buffer_store(&obj_context->codec_state.encode.pic_param);
-
- for (i = 0; i < obj_context->codec_state.encode.num_slice_params; i++)
{
-
i965_release_buffer_store(&obj_context->codec_state.encode.slice_params[i]);
- }
-
- obj_context->codec_state.encode.num_slice_params = 0;
-
/* ext */
i965_release_buffer_store(&obj_context->codec_state.encode.pic_param_ext);
@@ -3534,19 +3514,16 @@ i965_EndPicture(VADriverContextP ctx, VAContextID
context)
WARN_ONCE("the packed header/data is not paired for encoding!\n");
return VA_STATUS_ERROR_INVALID_PARAMETER;
}
- if (!(obj_context->codec_state.encode.pic_param ||
- obj_context->codec_state.encode.pic_param_ext)) {
+ if (obj_context->codec_state.encode.pic_param_ext) {
return VA_STATUS_ERROR_INVALID_PARAMETER;
}
- if (!(obj_context->codec_state.encode.seq_param ||
- obj_context->codec_state.encode.seq_param_ext) &&
+ if (!obj_context->codec_state.encode.seq_param_ext &&
(VAEntrypointEncPicture != obj_config->entrypoint)) {
/* The seq_param is not mandatory for VP9 encoding */
if (obj_config->profile != VAProfileVP9Profile0)
return VA_STATUS_ERROR_INVALID_PARAMETER;
}
- if ((obj_context->codec_state.encode.num_slice_params <=0) &&
- (obj_context->codec_state.encode.num_slice_params_ext <=0) &&
+ if ((obj_context->codec_state.encode.num_slice_params_ext <=0) &&
((obj_config->profile != VAProfileVP8Version0_3) &&
(obj_config->profile != VAProfileVP9Profile0))) {
return VA_STATUS_ERROR_INVALID_PARAMETER;
diff --git a/src/i965_drv_video.h b/src/i965_drv_video.h
index f67599e..9fe042f 100644
--- a/src/i965_drv_video.h
+++ b/src/i965_drv_video.h
@@ -145,15 +145,9 @@ struct decode_state
struct encode_state
{
struct codec_state_base base;
- struct buffer_store *seq_param;
- struct buffer_store *pic_param;
- struct buffer_store *pic_control;
struct buffer_store *iq_matrix;
struct buffer_store *q_matrix;
- struct buffer_store **slice_params;
struct buffer_store *huffman_table;
- int max_slice_params;
- int num_slice_params;
/* for ext */
struct buffer_store *seq_param_ext;
--
1.9.1
_______________________________________________
Libva mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libva