Signed-off-by: Xiang, Haihao <[email protected]>
---
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 <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;
}
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 */
--
1.9.1
_______________________________________________
Libva mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva