From 9b573e880081692c4db15b8f03b49bf5e4ff9021 Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Thu, 19 Jun 2014 16:35:00 +0800 Subject: [PATCH] HEVC: some variables used later Signed-off-by: Xiang, Haihao (cherry picked from commit 4c8834b73dbf3b996b30ad05b140e07e52dd7ab9) --- src/gen9_mfd.c | 17 ++++++++++++++++- src/gen9_mfd.h | 9 +++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/gen9_mfd.c b/src/gen9_mfd.c index cfed038..8545d1a 100644 --- a/src/gen9_mfd.c +++ b/src/gen9_mfd.c @@ -29,6 +29,7 @@ #include "sysdeps.h" #include +#include #include "intel_batchbuffer.h" #include "intel_driver.h" @@ -43,7 +44,21 @@ gen9_hcpd_hevc_decode_init(VADriverContextP ctx, struct decode_state *decode_state, struct gen9_hcpd_context *gen9_hcpd_context) { - /* FIXME: implement it later */ + VAPictureParameterBufferHEVC *pic_param; + + assert(decode_state->pic_param && decode_state->pic_param->buffer); + pic_param = (VAPictureParameterBufferHEVC *)decode_state->pic_param->buffer; + + gen9_hcpd_context->picture_width_in_pixels = pic_param->pic_width_in_luma_samples; + gen9_hcpd_context->picture_height_in_pixels = pic_param->pic_height_in_luma_samples; + gen9_hcpd_context->ctb_size = (1 << (pic_param->log2_min_luma_coding_block_size_minus3 + + 3 + + pic_param->log2_diff_max_min_luma_coding_block_size)); + gen9_hcpd_context->picture_width_in_ctbs = ALIGN(gen9_hcpd_context->picture_width_in_pixels, gen9_hcpd_context->ctb_size) / gen9_hcpd_context->ctb_size; + gen9_hcpd_context->picture_height_in_ctbs = ALIGN(gen9_hcpd_context->picture_height_in_pixels, gen9_hcpd_context->ctb_size) / gen9_hcpd_context->ctb_size; + gen9_hcpd_context->min_cb_size = (1 << (pic_param->log2_min_luma_coding_block_size_minus3 + 3)); + gen9_hcpd_context->picture_width_in_min_cb_minus1 = gen9_hcpd_context->picture_width_in_pixels / gen9_hcpd_context->min_cb_size - 1; + gen9_hcpd_context->picture_height_in_min_cb_minus1 = gen9_hcpd_context->picture_height_in_pixels / gen9_hcpd_context->min_cb_size - 1; return VA_STATUS_SUCCESS; } diff --git a/src/gen9_mfd.h b/src/gen9_mfd.h index 1578ea6..8b2213a 100644 --- a/src/gen9_mfd.h +++ b/src/gen9_mfd.h @@ -40,6 +40,15 @@ struct hw_context; struct gen9_hcpd_context { struct hw_context base; + + uint16_t picture_width_in_pixels; + uint16_t picture_height_in_pixels; + uint16_t picture_width_in_ctbs; + uint16_t picture_height_in_ctbs; + uint16_t picture_width_in_min_cb_minus1; + uint16_t picture_height_in_min_cb_minus1; + uint8_t ctb_size; + uint8_t min_cb_size; }; #endif /* GEN9_MFD_H */ -- 2.11.0