summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2012-11-26 15:23:40 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2012-12-07 16:05:34 +0800
commit326089b133d32b6efbf0f82f3d91a5ed41525477 (patch)
tree599b280ecb95bb75c7f3a59ced8b8db1107f3282
parenta20bc2125e7d3382a2833cf8b85c9d0066ee5732 (diff)
downloadlibva-326089b133d32b6efbf0f82f3d91a5ed41525477.tar.gz
mpeg2enc: insert picture header for each picture
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-rw-r--r--test/encode/mpeg2enc.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/test/encode/mpeg2enc.c b/test/encode/mpeg2enc.c
index 6bcb7ac..8779b8a 100644
--- a/test/encode/mpeg2enc.c
+++ b/test/encode/mpeg2enc.c
@@ -873,6 +873,9 @@ begin_picture(struct mpeg2enc_context *ctx,
{
VAStatus va_status;
int tmp;
+ VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
+ unsigned int length_in_bits;
+ unsigned char *packed_seq_buffer = NULL, *packed_pic_buffer = NULL;
if (ctx->upload_thread_value != 0) {
fprintf(stderr, "FATAL error!!!\n");
@@ -887,10 +890,6 @@ begin_picture(struct mpeg2enc_context *ctx,
ctx->current_upload_surface = tmp;
if (coded_order == 0) {
- VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
- unsigned int length_in_bits;
- unsigned char *packed_seq_buffer = NULL, *packed_pic_buffer = NULL;
-
assert(picture_type == VAEncPictureTypeIntra);
length_in_bits = build_packed_seq_buffer(&ctx->seq_param, &packed_seq_buffer);
packed_header_param_buffer.type = VAEncPackedHeaderMPEG2_SPS;
@@ -910,28 +909,29 @@ begin_picture(struct mpeg2enc_context *ctx,
&ctx->packed_seq_buf_id);
CHECK_VASTATUS(va_status,"vaCreateBuffer");
- length_in_bits = build_packed_pic_buffer(&ctx->seq_param, &ctx->pic_param, &packed_pic_buffer);
- packed_header_param_buffer.type = VAEncPackedHeaderMPEG2_PPS;
- packed_header_param_buffer.has_emulation_bytes = 0;
- packed_header_param_buffer.bit_length = length_in_bits;
+ free(packed_seq_buffer);
+ }
- va_status = vaCreateBuffer(ctx->va_dpy,
- ctx->context_id,
- VAEncPackedHeaderParameterBufferType,
- sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
- &ctx->packed_pic_header_param_buf_id);
- CHECK_VASTATUS(va_status,"vaCreateBuffer");
+ length_in_bits = build_packed_pic_buffer(&ctx->seq_param, &ctx->pic_param, &packed_pic_buffer);
+ packed_header_param_buffer.type = VAEncPackedHeaderMPEG2_PPS;
+ packed_header_param_buffer.has_emulation_bytes = 0;
+ packed_header_param_buffer.bit_length = length_in_bits;
- va_status = vaCreateBuffer(ctx->va_dpy,
- ctx->context_id,
- VAEncPackedHeaderDataBufferType,
- (length_in_bits + 7) / 8, 1, packed_pic_buffer,
- &ctx->packed_pic_buf_id);
- CHECK_VASTATUS(va_status,"vaCreateBuffer");
+ va_status = vaCreateBuffer(ctx->va_dpy,
+ ctx->context_id,
+ VAEncPackedHeaderParameterBufferType,
+ sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+ &ctx->packed_pic_header_param_buf_id);
+ CHECK_VASTATUS(va_status,"vaCreateBuffer");
- free(packed_seq_buffer);
- free(packed_pic_buffer);
- }
+ va_status = vaCreateBuffer(ctx->va_dpy,
+ ctx->context_id,
+ VAEncPackedHeaderDataBufferType,
+ (length_in_bits + 7) / 8, 1, packed_pic_buffer,
+ &ctx->packed_pic_buf_id);
+ CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+ free(packed_pic_buffer);
/* sequence parameter set */
VAEncSequenceParameterBufferMPEG2 *seq_param = &ctx->seq_param;