summaryrefslogtreecommitdiff
path: root/src/gen8_mfc.c
diff options
context:
space:
mode:
authorLi Xiaowei <xiaowei.a.li@intel.com>2013-12-19 17:51:45 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2014-06-16 11:53:35 +0800
commit1ae22a0549d30dd24991c4c2c9902e7b7a8d935e (patch)
tree2227223dbd302ecd497e7bb5c770ab58ed84fa4b /src/gen8_mfc.c
parent40af27ded9830fa61dcf61d01c21551e1a148647 (diff)
encoder: MVC: Add support for MVC profiles
This is a part of bd630edd844b88ea543a027654db296ff7da16cd on staging Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com> Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Diffstat (limited to 'src/gen8_mfc.c')
-rw-r--r--src/gen8_mfc.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gen8_mfc.c b/src/gen8_mfc.c
index ac421bd..df99603 100644
--- a/src/gen8_mfc.c
+++ b/src/gen8_mfc.c
@@ -401,7 +401,8 @@ static void gen8_mfc_init(VADriverContextP ctx,
int height_in_mbs = 0;
int slice_batchbuffer_size;
- if (encoder_context->codec == CODEC_H264) {
+ if (encoder_context->codec == CODEC_H264 ||
+ encoder_context->codec == CODEC_H264_MVC) {
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param_ext->buffer;
width_in_mbs = pSequenceParameter->picture_width_in_mbs;
height_in_mbs = pSequenceParameter->picture_height_in_mbs;
@@ -1046,13 +1047,13 @@ gen8_mfc_avc_pipeline_slice_programing(VADriverContextP ctx,
assert(pPicParameter->pic_init_qp >= 0 && pPicParameter->pic_init_qp < 52);
assert(qp >= 0 && qp < 52);
- gen8_mfc_avc_slice_state(ctx,
+ gen8_mfc_avc_slice_state(ctx,
pPicParameter,
pSliceParameter,
encode_state, encoder_context,
(rate_control_mode == VA_RC_CBR), qp, slice_batch);
- if ( slice_index == 0)
+ if ( slice_index == 0)
intel_mfc_avc_pipeline_header_programing(ctx, encode_state, encoder_context, slice_batch);
slice_header_length_in_bits = build_avc_slice_header(pSequenceParameter, pPicParameter, pSliceParameter, &slice_header);
@@ -1063,6 +1064,8 @@ gen8_mfc_avc_pipeline_slice_programing(VADriverContextP ctx,
5, /* first 5 bytes are start code + nal unit type */
1, 0, 1, slice_batch);
+ free(slice_header);
+
dri_bo_map(vme_context->vme_output.bo , 1);
msg_ptr = (unsigned char *)vme_context->vme_output.bo->virtual;
@@ -1108,7 +1111,6 @@ gen8_mfc_avc_pipeline_slice_programing(VADriverContextP ctx,
1, 1, 1, 0, slice_batch);
}
- free(slice_header);
}
@@ -1452,6 +1454,7 @@ gen8_mfc_avc_batchbuffer_slice(VADriverContextP ctx,
0,
1,
slice_batch);
+
free(slice_header);
intel_batchbuffer_align(slice_batch, 16); /* aligned by an Oword */
@@ -2435,6 +2438,8 @@ static VAStatus gen8_mfc_pipeline(VADriverContextP ctx,
case VAProfileH264ConstrainedBaseline:
case VAProfileH264Main:
case VAProfileH264High:
+ case VAProfileH264MultiviewHigh:
+ case VAProfileH264StereoHigh:
vaStatus = gen8_mfc_avc_encode_picture(ctx, encode_state, encoder_context);
break;