summaryrefslogtreecommitdiff
path: root/src/gen6_mfc.c
diff options
context:
space:
mode:
authorZhao Yakui <yakui.zhao@intel.com>2012-09-24 17:20:44 -0400
committerXiang, Haihao <haihao.xiang@intel.com>2012-10-23 13:50:28 +0800
commit42680f470f7e34e4e8f9f87120d0255a034e26fa (patch)
treec5c10900f346be1de3061898a519b11a022edff2 /src/gen6_mfc.c
parent0c7a94ab347e56adbbc48c254b66508a7ba7d407 (diff)
downloadlibva-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.c80
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);