summaryrefslogtreecommitdiff
path: root/src/gen9_mfd.c
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2014-06-19 16:35:00 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2014-12-14 00:42:17 +0800
commit9b573e880081692c4db15b8f03b49bf5e4ff9021 (patch)
tree98669bd772d3e2b4eff8ee609d5ac767f33472b3 /src/gen9_mfd.c
parentbfad8c42dd3cceb6f2ff5177d6b724f7700f65a8 (diff)
HEVC: some variables used later
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> (cherry picked from commit 4c8834b73dbf3b996b30ad05b140e07e52dd7ab9)
Diffstat (limited to 'src/gen9_mfd.c')
-rw-r--r--src/gen9_mfd.c17
1 files changed, 16 insertions, 1 deletions
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 <va/va.h>
+#include <va/va_dec_hevc.h>
#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;
}