summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gen6_mfc.c80
-rw-r--r--src/gen6_mfc.h5
-rw-r--r--src/gen6_mfc_common.c76
-rw-r--r--src/gen75_mfc.c80
4 files changed, 85 insertions, 156 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);
diff --git a/src/gen6_mfc.h b/src/gen6_mfc.h
index d458d10a..45423fea 100644
--- a/src/gen6_mfc.h
+++ b/src/gen6_mfc.h
@@ -250,4 +250,9 @@ extern int intel_mfc_interlace_check(VADriverContextP ctx,
extern void intel_mfc_brc_prepare(struct encode_state *encode_state,
struct intel_encoder_context *encoder_context);
+
+extern void intel_mfc_avc_pipeline_header_programing(VADriverContextP ctx,
+ struct encode_state *encode_state,
+ struct intel_encoder_context *encoder_context,
+ struct intel_batchbuffer *slice_batch);
#endif /* _GEN6_MFC_BCS_H_ */
diff --git a/src/gen6_mfc_common.c b/src/gen6_mfc_common.c
index f0dabe1f..83f2792c 100644
--- a/src/gen6_mfc_common.c
+++ b/src/gen6_mfc_common.c
@@ -386,3 +386,79 @@ void intel_mfc_brc_prepare(struct encode_state *encode_state,
}
}
+void intel_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);
+ }
+}
+
diff --git a/src/gen75_mfc.c b/src/gen75_mfc.c
index f558434d..f15bd845 100644
--- a/src/gen75_mfc.c
+++ b/src/gen75_mfc.c
@@ -1145,82 +1145,6 @@ gen75_mfc_avc_slice_state(VADriverContextP ctx,
}
-static void gen75_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);
- }
-}
-
#ifdef MFC_SOFTWARE_HASWELL
static int
@@ -1386,7 +1310,7 @@ gen75_mfc_avc_pipeline_slice_programing(VADriverContextP ctx,
(rate_control_mode == VA_RC_CBR), qp, slice_batch);
if ( slice_index == 0)
- gen75_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);
@@ -1766,7 +1690,7 @@ gen75_mfc_avc_batchbuffer_slice(VADriverContextP ctx,
slice_batch);
if (slice_index == 0)
- gen75_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);