summaryrefslogtreecommitdiff
path: root/va
diff options
context:
space:
mode:
Diffstat (limited to 'va')
-rw-r--r--va/va_trace.c119
1 files changed, 61 insertions, 58 deletions
diff --git a/va/va_trace.c b/va/va_trace.c
index c16ef92..ed4a30d 100644
--- a/va/va_trace.c
+++ b/va/va_trace.c
@@ -1,3 +1,4 @@
+
/*
* Copyright (c) 2009-2011 Intel Corporation. All Rights Reserved.
*
@@ -45,7 +46,7 @@
/*
* Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio:
* .LIBVA_TRACE=log_file: general VA parameters saved into log_file
- * .LIBVA_TRACE_BUFDATA: dump VA buffer data into log_file (if not set, just calculate a checksum)
+ * .LIBVA_TRACE_BUFDATA: dump all VA data buffer into log_file
* .LIBVA_TRACE_CODEDBUF=coded_clip_file: save the coded clip into file coded_clip_file
* .LIBVA_TRACE_SURFACE=yuv_file: save surface YUV into file yuv_file. Use file name to determine
* decode/encode or jpeg surfaces
@@ -148,9 +149,9 @@ do { \
\
snprintf(env_value+tmp, \
left, \
- ".%04d.%05d", \
- trace_index, \
- suffix); \
+ ".%04d.%08lx", \
+ suffix, \
+ (unsigned long)trace_ctx); \
} while (0)
void va_TraceInit(VADisplay dpy)
@@ -293,6 +294,11 @@ void va_TraceMsg(struct trace_context *trace_ctx, const char *msg, ...)
if (file_size(trace_ctx->trace_fp_log) >= trace_logsize)
truncate_file(trace_ctx->trace_fp_log);
if (msg) {
+ struct timeval tv;
+
+ if (gettimeofday(&tv, NULL) == 0)
+ fprintf(trace_ctx->trace_fp_log, "[%04d:%06d] ",
+ (unsigned int)tv.tv_sec & 0xffff, (unsigned int)tv.tv_usec);
va_start(args, msg);
vfprintf(trace_ctx->trace_fp_log, msg, args);
va_end(args);
@@ -304,7 +310,8 @@ void va_TraceCodedBuf(VADisplay dpy)
{
VACodedBufferSegment *buf_list = NULL;
VAStatus va_status;
- unsigned char check_sum = 0;
+ int i;
+
DPY2TRACECTX(dpy);
/* can only truncate at a sequence boudary */
@@ -313,7 +320,6 @@ void va_TraceCodedBuf(VADisplay dpy)
va_TraceMsg(trace_ctx, "==========truncate file %s\n", trace_ctx->trace_codedbuf_fn);
truncate_file(trace_ctx->trace_fp_log);
}
-
trace_ctx->trace_sequence_start = 0; /* only truncate coded file when meet next new sequence */
@@ -324,20 +330,12 @@ void va_TraceCodedBuf(VADisplay dpy)
va_TraceMsg(trace_ctx, "==========dump codedbuf into file %s\n", trace_ctx->trace_codedbuf_fn);
while (buf_list != NULL) {
- unsigned int i;
-
- va_TraceMsg(trace_ctx, "\tsize = %d\n", buf_list->size);
+ va_TraceMsg(trace_ctx, "\tVACodedBufferSegment[%d].size = %d\n", i++, buf_list->size);
if (trace_ctx->trace_fp_codedbuf)
fwrite(buf_list->buf, buf_list->size, 1, trace_ctx->trace_fp_codedbuf);
-
- for (i=0; i<buf_list->size; i++)
- check_sum ^= *((unsigned char *)buf_list->buf + i);
-
buf_list = buf_list->next;
}
vaUnmapBuffer(dpy,trace_ctx->trace_codedbuf);
-
- va_TraceMsg(trace_ctx, "\tchecksum = 0x%02x\n", check_sum);
va_TraceMsg(trace_ctx, NULL);
}
@@ -786,24 +784,25 @@ static void va_TraceVABuffers(
{
unsigned int i;
unsigned char *p = pbuf;
- unsigned char check_sum = 0;
+
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "%s", buffer_type_to_string(type));
+ va_TraceMsg(trace_ctx, "--%s\n", buffer_type_to_string(type));
- for (i=0; i<size; i++) {
- unsigned char value = p[i];
-
- if ((trace_flag & VA_TRACE_FLAG_BUFDATA) && ((i%16) == 0))
- va_TraceMsg(trace_ctx, "\n\t0x%08x:", i);
+ if ((trace_flag & VA_TRACE_FLAG_BUFDATA) && trace_ctx->trace_fp_log) {
+ for (i=0; i<size; i++) {
+ unsigned char value = p[i];
- if (trace_flag & VA_TRACE_FLAG_BUFDATA)
- va_TraceMsg(trace_ctx, " %02x", value);
+ if (i==0)
+ fprintf(trace_ctx->trace_fp_log, "\t\t0x%04x:", i);
+ else if ((i%16) == 0)
+ fprintf(trace_ctx->trace_fp_log, "\n\t\t0x%04x:", i);
- check_sum ^= value;
+ fprintf(trace_ctx->trace_fp_log, " %02x", value);
+ }
+ fprintf(trace_ctx->trace_fp_log, "\n");
}
-
- va_TraceMsg(trace_ctx, "\n\tchecksum = 0x%02x\n", check_sum & 0xff);
+
va_TraceMsg(trace_ctx, NULL);
return;
@@ -1137,7 +1136,7 @@ static void va_TraceVAEncSequenceParameterBufferMPEG4(
VAEncSequenceParameterBufferMPEG4 *p = (VAEncSequenceParameterBufferMPEG4 *)data;
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAEncSequenceParameterBufferMPEG4\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferMPEG4\n");
va_TraceMsg(trace_ctx, "\tprofile_and_level_indication = %d\n", p->profile_and_level_indication);
va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
@@ -1170,7 +1169,7 @@ static void va_TraceVAEncPictureParameterBufferMPEG4(
VAEncPictureParameterBufferMPEG4 *p = (VAEncPictureParameterBufferMPEG4 *)data;
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAEncPictureParameterBufferMPEG4\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferMPEG4\n");
va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
@@ -1244,7 +1243,7 @@ static void va_TraceVAPictureParameterBufferH264(
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAPictureParameterBufferH264\n");
+ va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferH264\n");
va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
@@ -1264,7 +1263,7 @@ static void va_TraceVAPictureParameterBufferH264(
p->ReferenceFrames[i].frame_idx,
p->ReferenceFrames[i].flags);
} else
- va_TraceMsg(trace_ctx, "\t\tinv-inv-inv-inv-inv\n");
+ break;
}
va_TraceMsg(trace_ctx, "\n");
@@ -1320,7 +1319,7 @@ static void va_TraceVASliceParameterBufferH264(
trace_ctx->trace_slice_no++;
trace_ctx->trace_slice_size = p->slice_data_size;
- va_TraceMsg(trace_ctx, "VASliceParameterBufferH264\n");
+ va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferH264\n");
va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
@@ -1416,7 +1415,7 @@ static void va_TraceVAIQMatrixBufferH264(
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAIQMatrixBufferH264\n");
+ va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferH264\n");
va_TraceMsg(trace_ctx, "\tScalingList4x4[6][16]=\n");
for (i = 0; i < 6; i++) {
@@ -1454,7 +1453,7 @@ static void va_TraceVAEncSequenceParameterBufferH264(
DPY2TRACECTX(dpy);
int i;
- va_TraceMsg(trace_ctx, "VAEncSequenceParameterBufferH264\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH264\n");
va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
va_TraceMsg(trace_ctx, "\tlevel_idc = %d\n", p->level_idc);
@@ -1520,7 +1519,7 @@ static void va_TraceVAEncPictureParameterBufferH264(
DPY2TRACECTX(dpy);
int i;
- va_TraceMsg(trace_ctx, "VAEncPictureParameterBufferH264\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH264\n");
va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
@@ -1540,7 +1539,7 @@ static void va_TraceVAEncPictureParameterBufferH264(
p->ReferenceFrames[i].flags
);
} else
- va_TraceMsg(trace_ctx, "\t\tinv-inv-inv-inv-inv\n");
+ break;
}
va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
@@ -1584,7 +1583,7 @@ static void va_TraceVAEncSliceParameterBuffer(
VAEncSliceParameterBuffer* p = (VAEncSliceParameterBuffer*)data;
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAEncSliceParameterBuffer\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBuffer\n");
va_TraceMsg(trace_ctx, "\tstart_row_number = %d\n", p->start_row_number);
va_TraceMsg(trace_ctx, "\tslice_height = %d\n", p->slice_height);
@@ -1612,7 +1611,8 @@ static void va_TraceVAEncSliceParameterBufferH264(
if (!p)
return;
- va_TraceMsg(trace_ctx, "VAEncSliceParameterBufferH264\n");
+
+ va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBufferH264\n");
va_TraceMsg(trace_ctx, "\tmacroblock_address = %d\n", p->macroblock_address);
va_TraceMsg(trace_ctx, "\tnum_macroblocks = %d\n", p->num_macroblocks);
va_TraceMsg(trace_ctx, "\tmacroblock_info = %08x\n", p->macroblock_info);
@@ -1629,6 +1629,9 @@ static void va_TraceVAEncSliceParameterBufferH264(
va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
va_TraceMsg(trace_ctx, "\tRefPicList0 (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
+
+
+
for (i = 0; i < 32; i++) {
if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
@@ -1730,7 +1733,7 @@ static void va_TraceVAEncPackedHeaderParameterBufferType(
if (!p)
return;
- va_TraceMsg(trace_ctx, "VAEncPackedHeaderParameterBuffer\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncPackedHeaderParameterBuffer\n");
va_TraceMsg(trace_ctx, "\ttype = 0x%08x\n", p->type);
va_TraceMsg(trace_ctx, "\tbit_length = %d\n", p->bit_length);
va_TraceMsg(trace_ctx, "\thas_emulation_bytes = %d\n", p->has_emulation_bytes);
@@ -1755,7 +1758,7 @@ static void va_TraceVAEncMiscParameterBuffer(
case VAEncMiscParameterTypeFrameRate:
{
VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data;
- va_TraceMsg(trace_ctx, "VAEncMiscParameterFrameRate\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterFrameRate\n");
va_TraceMsg(trace_ctx, "\tframerate = %d\n", p->framerate);
break;
@@ -1764,7 +1767,7 @@ static void va_TraceVAEncMiscParameterBuffer(
{
VAEncMiscParameterRateControl *p = (VAEncMiscParameterRateControl *)tmp->data;
- va_TraceMsg(trace_ctx, "VAEncMiscParameterRateControl\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterRateControl\n");
va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
va_TraceMsg(trace_ctx, "\ttarget_percentage = %d\n", p->target_percentage);
va_TraceMsg(trace_ctx, "\twindow_size = %d\n", p->window_size);
@@ -1780,7 +1783,7 @@ static void va_TraceVAEncMiscParameterBuffer(
{
VAEncMiscParameterMaxSliceSize *p = (VAEncMiscParameterMaxSliceSize *)tmp->data;
- va_TraceMsg(trace_ctx, "VAEncMiscParameterTypeMaxSliceSize\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMaxSliceSize\n");
va_TraceMsg(trace_ctx, "\tmax_slice_size = %d\n", p->max_slice_size);
break;
}
@@ -1788,7 +1791,7 @@ static void va_TraceVAEncMiscParameterBuffer(
{
VAEncMiscParameterAIR *p = (VAEncMiscParameterAIR *)tmp->data;
- va_TraceMsg(trace_ctx, "VAEncMiscParameterAIR\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterAIR\n");
va_TraceMsg(trace_ctx, "\tair_num_mbs = %d\n", p->air_num_mbs);
va_TraceMsg(trace_ctx, "\tair_threshold = %d\n", p->air_threshold);
va_TraceMsg(trace_ctx, "\tair_auto = %d\n", p->air_auto);
@@ -1798,13 +1801,13 @@ static void va_TraceVAEncMiscParameterBuffer(
{
VAEncMiscParameterHRD *p = (VAEncMiscParameterHRD *)tmp->data;
- va_TraceMsg(trace_ctx, "VAEncMiscParameterHRD\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterHRD\n");
va_TraceMsg(trace_ctx, "\tinitial_buffer_fullness = %d\n", p->initial_buffer_fullness);
va_TraceMsg(trace_ctx, "\tbuffer_size = %d\n", p->buffer_size);
break;
}
default:
- va_TraceMsg(trace_ctx, "Unknown VAEncMiscParameterBuffer(type = %d):", tmp->type);
+ va_TraceMsg(trace_ctx, "Unknown VAEncMiscParameterBuffer(type = %d):\n", tmp->type);
va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data);
break;
}
@@ -1827,7 +1830,7 @@ static void va_TraceVAPictureParameterBufferVC1(
VAPictureParameterBufferVC1* p = (VAPictureParameterBufferVC1*)data;
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAPictureParameterBufferVC1\n");
+ va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVC1\n");
va_TraceMsg(trace_ctx, "\tforward_reference_picture = 0x%08x\n", p->forward_reference_picture);
va_TraceMsg(trace_ctx, "\tbackward_reference_picture = 0x%08x\n", p->backward_reference_picture);
@@ -1935,7 +1938,7 @@ static void va_TraceVASliceParameterBufferVC1(
trace_ctx->trace_slice_no++;
trace_ctx->trace_slice_size = p->slice_data_size;
- va_TraceMsg(trace_ctx, "VASliceParameterBufferVC1\n");
+ va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVC1\n");
va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
@@ -2033,7 +2036,7 @@ static void va_TraceVAEncSequenceParameterBufferH263(
VAEncSequenceParameterBufferH263 *p = (VAEncSequenceParameterBufferH263 *)data;
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAEncSequenceParameterBufferH263\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH263\n");
va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
@@ -2061,7 +2064,7 @@ static void va_TraceVAEncPictureParameterBufferH263(
VAEncPictureParameterBufferH263 *p = (VAEncPictureParameterBufferH263 *)data;
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAEncPictureParameterBufferH263\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH263\n");
va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
@@ -2089,7 +2092,7 @@ static void va_TraceVAEncPictureParameterBufferJPEG(
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAEncPictureParameterBufferJPEG\n");
+ va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferJPEG\n");
va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
@@ -2114,7 +2117,7 @@ static void va_TraceVAEncQMatrixBufferJPEG(
VAQMatrixBufferJPEG *p = (VAQMatrixBufferJPEG *)data;
DPY2TRACECTX(dpy);
- va_TraceMsg(trace_ctx, "VAQMatrixBufferJPEG\n");
+ va_TraceMsg(trace_ctx, "\t--VAQMatrixBufferJPEG\n");
va_TraceMsg(trace_ctx, "\tload_lum_quantiser_matrix = %d", p->load_lum_quantiser_matrix);
if (p->load_lum_quantiser_matrix) {
int i;
@@ -2489,7 +2492,7 @@ void va_TraceRenderPicture(
case VAProfileMPEG2Simple:
case VAProfileMPEG2Main:
for (j=0; j<num_elements; j++) {
- va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
+ va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
va_TraceMPEG2Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
}
break;
@@ -2497,7 +2500,7 @@ void va_TraceRenderPicture(
case VAProfileMPEG4AdvancedSimple:
case VAProfileMPEG4Main:
for (j=0; j<num_elements; j++) {
- va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
+ va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
va_TraceMPEG4Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
}
break;
@@ -2506,7 +2509,7 @@ void va_TraceRenderPicture(
case VAProfileH264High:
case VAProfileH264ConstrainedBaseline:
for (j=0; j<num_elements; j++) {
- va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
+ va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
va_TraceH264Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
}
@@ -2515,23 +2518,23 @@ void va_TraceRenderPicture(
case VAProfileVC1Main:
case VAProfileVC1Advanced:
for (j=0; j<num_elements; j++) {
- va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
+ va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
va_TraceVC1Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
}
break;
case VAProfileH263Baseline:
for (j=0; j<num_elements; j++) {
- va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
+ va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
va_TraceH263Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
}
break;
case VAProfileJPEGBaseline:
for (j=0; j<num_elements; j++) {
- va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
+ va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
- va_TraceJPEGBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+ va_TraceJPEGBuf (dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
}
break;
default: