diff options
author | Zhao Yakui <yakui.zhao@intel.com> | 2012-09-24 17:20:44 -0400 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2012-10-23 13:50:28 +0800 |
commit | 42680f470f7e34e4e8f9f87120d0255a034e26fa (patch) | |
tree | c5c10900f346be1de3061898a519b11a022edff2 /src/gen6_mfc.c | |
parent | 0c7a94ab347e56adbbc48c254b66508a7ba7d407 (diff) | |
download | libva-intel-driver-42680f470f7e34e4e8f9f87120d0255a034e26fa.tar.gz |
Use the common API to write avc SPS/PPS/SEI info on SNB/IVY/HSW
This is to remove the dup code.
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Diffstat (limited to 'src/gen6_mfc.c')
-rw-r--r-- | src/gen6_mfc.c | 80 |
1 files changed, 2 insertions, 78 deletions
diff --git a/src/gen6_mfc.c b/src/gen6_mfc.c index 59034be9..09d11106 100644 --- a/src/gen6_mfc.c +++ b/src/gen6_mfc.c @@ -619,82 +619,6 @@ static void gen6_mfc_init(VADriverContextP ctx, struct intel_encoder_context *en i965_gpe_context_init(ctx, &mfc_context->gpe_context); } -static void gen6_mfc_avc_pipeline_header_programing(VADriverContextP ctx, - struct encode_state *encode_state, - struct intel_encoder_context *encoder_context, - struct intel_batchbuffer *slice_batch) -{ - struct gen6_mfc_context *mfc_context = encoder_context->mfc_context; - int idx = va_enc_packed_type_to_idx(VAEncPackedHeaderH264_SPS); - - if (encode_state->packed_header_data[idx]) { - VAEncPackedHeaderParameterBuffer *param = NULL; - unsigned int *header_data = (unsigned int *)encode_state->packed_header_data[idx]->buffer; - unsigned int length_in_bits; - - assert(encode_state->packed_header_param[idx]); - param = (VAEncPackedHeaderParameterBuffer *)encode_state->packed_header_param[idx]->buffer; - length_in_bits = param->bit_length; - - mfc_context->insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - 5, /* FIXME: check it */ - 0, - 0, - !param->has_emulation_bytes, - slice_batch); - } - - idx = va_enc_packed_type_to_idx(VAEncPackedHeaderH264_PPS); - - if (encode_state->packed_header_data[idx]) { - VAEncPackedHeaderParameterBuffer *param = NULL; - unsigned int *header_data = (unsigned int *)encode_state->packed_header_data[idx]->buffer; - unsigned int length_in_bits; - - assert(encode_state->packed_header_param[idx]); - param = (VAEncPackedHeaderParameterBuffer *)encode_state->packed_header_param[idx]->buffer; - length_in_bits = param->bit_length; - - mfc_context->insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - 5, /* FIXME: check it */ - 0, - 0, - !param->has_emulation_bytes, - slice_batch); - } - - idx = va_enc_packed_type_to_idx(VAEncPackedHeaderH264_SEI); - - if (encode_state->packed_header_data[idx]) { - VAEncPackedHeaderParameterBuffer *param = NULL; - unsigned int *header_data = (unsigned int *)encode_state->packed_header_data[idx]->buffer; - unsigned int length_in_bits; - - assert(encode_state->packed_header_param[idx]); - param = (VAEncPackedHeaderParameterBuffer *)encode_state->packed_header_param[idx]->buffer; - length_in_bits = param->bit_length; - - mfc_context->insert_object(ctx, - encoder_context, - header_data, - ALIGN(length_in_bits, 32) >> 5, - length_in_bits & 0x1f, - 5, /* FIXME: check it */ - 0, - 0, - !param->has_emulation_bytes, - slice_batch); - } -} - static void gen6_mfc_avc_pipeline_picture_programing( VADriverContextP ctx, struct encode_state *encode_state, struct intel_encoder_context *encoder_context) @@ -1040,7 +964,7 @@ gen6_mfc_avc_pipeline_slice_programing(VADriverContextP ctx, (rate_control_mode == VA_RC_CBR), qp, slice_batch); if ( slice_index == 0) - gen6_mfc_avc_pipeline_header_programing(ctx, encode_state, encoder_context, slice_batch); + 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); @@ -1420,7 +1344,7 @@ gen6_mfc_avc_batchbuffer_slice(VADriverContextP ctx, slice_batch); if (slice_index == 0) - gen6_mfc_avc_pipeline_header_programing(ctx, encode_state, encoder_context, slice_batch); + 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); |