summaryrefslogtreecommitdiffstats
path: root/va/va_trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'va/va_trace.c')
-rwxr-xr-xva/va_trace.c225
1 files changed, 191 insertions, 34 deletions
diff --git a/va/va_trace.c b/va/va_trace.c
index 29addf0..3e0fc8c 100755
--- a/va/va_trace.c
+++ b/va/va_trace.c
@@ -24,8 +24,10 @@
#define _GNU_SOURCE 1
#include "va.h"
+#include "va_enc_h264.h"
#include "va_backend.h"
#include "va_trace.h"
+#include "va_enc_h264.h"
#include <assert.h>
#include <stdarg.h>
@@ -488,15 +490,16 @@ void va_TraceCreateConfig(
}
}
-void va_TraceCreateSurface(
+
+void va_TraceCreateSurfaces(
VADisplay dpy,
int width,
int height,
int format,
int num_surfaces,
- VASurfaceID *surfaces, /* out */
- VASurfaceAttrib *attrib_list,
- int num_attribs
+ VASurfaceID *surfaces, /* out */
+ VASurfaceAttrib *attrib_list,
+ unsigned int num_attribs
)
{
int i;
@@ -1154,22 +1157,52 @@ static void va_TraceVAEncSequenceParameterBufferH264(
{
VAEncSequenceParameterBufferH264 *p = (VAEncSequenceParameterBufferH264 *)data;
DPY2INDEX(dpy);
-
+ int i;
+
va_TraceMsg(idx, "VAEncSequenceParameterBufferH264\n");
-
+
va_TraceMsg(idx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
va_TraceMsg(idx, "\tlevel_idc = %d\n", p->level_idc);
va_TraceMsg(idx, "\tintra_period = %d\n", p->intra_period);
va_TraceMsg(idx, "\tintra_idr_period = %d\n", p->intra_idr_period);
+ va_TraceMsg(idx, "\tip_period = %d\n", p->ip_period);
+ va_TraceMsg(idx, "\tbits_per_second = %d\n", p->bits_per_second);
va_TraceMsg(idx, "\tmax_num_ref_frames = %d\n", p->max_num_ref_frames);
va_TraceMsg(idx, "\tpicture_width_in_mbs = %d\n", p->picture_width_in_mbs);
va_TraceMsg(idx, "\tpicture_height_in_mbs = %d\n", p->picture_height_in_mbs);
- va_TraceMsg(idx, "\tbits_per_second = %d\n", p->bits_per_second);
- va_TraceMsg(idx, "\tframe_rate = %d\n", p->frame_rate);
- va_TraceMsg(idx, "\tinitial_qp = %d\n", p->initial_qp);
- va_TraceMsg(idx, "\tmin_qp = %d\n", p->min_qp);
- va_TraceMsg(idx, "\tbasic_unit_size = %d\n", p->basic_unit_size);
- va_TraceMsg(idx, "\tvui_flag = %d\n", p->vui_flag);
+ va_TraceMsg(idx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
+ va_TraceMsg(idx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
+ va_TraceMsg(idx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
+ va_TraceMsg(idx, "\tseq_scaling_matrix_present_flag = %d\n", p->seq_fields.bits.seq_scaling_matrix_present_flag);
+ va_TraceMsg(idx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
+ va_TraceMsg(idx, "\tlog2_max_frame_num_minus4 = %d\n", p->seq_fields.bits.log2_max_frame_num_minus4);
+ va_TraceMsg(idx, "\tpic_order_cnt_type = %d\n", p->seq_fields.bits.pic_order_cnt_type);
+ va_TraceMsg(idx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);
+ va_TraceMsg(idx, "\tdelta_pic_order_always_zero_flag = %d\n", p->seq_fields.bits.delta_pic_order_always_zero_flag);
+ va_TraceMsg(idx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
+ va_TraceMsg(idx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
+ va_TraceMsg(idx, "\tnum_ref_frames_in_pic_order_cnt_cycle = %d\n", p->num_ref_frames_in_pic_order_cnt_cycle);
+ va_TraceMsg(idx, "\toffset_for_non_ref_pic = %d\n", p->offset_for_non_ref_pic);
+ va_TraceMsg(idx, "\toffset_for_top_to_bottom_field = %d\n", p->offset_for_top_to_bottom_field);
+ for(i = 0; i< p->max_num_ref_frames; ++i)
+ va_TraceMsg(idx, "\toffset_for_ref_frame[%d] = %d\n", i, p->offset_for_ref_frame[i]);
+ va_TraceMsg(idx, "\tframe_cropping_flag = %d\n", p->frame_cropping_flag);
+ va_TraceMsg(idx, "\tframe_crop_left_offset = %d\n", p->frame_crop_left_offset);
+ va_TraceMsg(idx, "\tframe_crop_right_offset = %d\n", p->frame_crop_right_offset);
+ va_TraceMsg(idx, "\tframe_crop_top_offset = %d\n", p->frame_crop_top_offset);
+ va_TraceMsg(idx, "\tframe_crop_bottom_offset = %d\n", p->frame_crop_bottom_offset);
+ va_TraceMsg(idx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag);
+ va_TraceMsg(idx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag);
+ va_TraceMsg(idx, "\ttiming_info_present_flag = %d\n", p->vui_fields.bits.timing_info_present_flag);
+ va_TraceMsg(idx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag);
+ va_TraceMsg(idx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal);
+ va_TraceMsg(idx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical);
+ va_TraceMsg(idx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc);
+ va_TraceMsg(idx, "\tsar_width = %d\n", p->sar_width);
+ va_TraceMsg(idx, "\tsar_height = %d\n", p->sar_height);
+ va_TraceMsg(idx, "\tnum_units_in_tick = %d\n", p->num_units_in_tick);
+ va_TraceMsg(idx, "\ttime_scale = %d\n", p->time_scale);
+
va_TraceMsg(idx, NULL);
/* start a new sequce, coded log file can be truncated */
@@ -1178,6 +1211,7 @@ static void va_TraceVAEncSequenceParameterBufferH264(
return;
}
+
static void va_TraceVAEncPictureParameterBufferH264(
VADisplay dpy,
VAContextID context,
@@ -1189,22 +1223,57 @@ static void va_TraceVAEncPictureParameterBufferH264(
{
VAEncPictureParameterBufferH264 *p = (VAEncPictureParameterBufferH264 *)data;
DPY2INDEX(dpy);
-
+ int i;
+
va_TraceMsg(idx, "VAEncPictureParameterBufferH264\n");
- va_TraceMsg(idx, "\treference_picture = 0x%08x\n", p->reference_picture);
- va_TraceMsg(idx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
+
+ va_TraceMsg(idx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
+ va_TraceMsg(idx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
+ va_TraceMsg(idx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
+ va_TraceMsg(idx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
+ va_TraceMsg(idx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
+ va_TraceMsg(idx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx:\n");
+ for (i = 0; i < 16; i++)
+ {
+ if (p->ReferenceFrames[i].flags != VA_PICTURE_H264_INVALID) {
+ va_TraceMsg(idx, "\t\t%d-%d-0x%08x-%d\n",
+ p->ReferenceFrames[i].TopFieldOrderCnt,
+ p->ReferenceFrames[i].BottomFieldOrderCnt,
+ p->ReferenceFrames[i].picture_id,
+ p->ReferenceFrames[i].frame_idx);
+ } else
+ va_TraceMsg(idx, "\t\tinv-inv-inv-inv\n");
+ }
va_TraceMsg(idx, "\tcoded_buf = %08x\n", p->coded_buf);
- va_TraceMsg(idx, "\tpicture_width = %d\n", p->picture_width);
- va_TraceMsg(idx, "\tpicture_height = %d\n", p->picture_height);
+ va_TraceMsg(idx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
+ va_TraceMsg(idx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
va_TraceMsg(idx, "\tlast_picture = 0x%08x\n", p->last_picture);
+ va_TraceMsg(idx, "\tframe_num = %d\n", p->frame_num);
+ va_TraceMsg(idx, "\tpic_init_qp = %d\n", p->pic_init_qp);
+ va_TraceMsg(idx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
+ va_TraceMsg(idx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
+ va_TraceMsg(idx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
+ va_TraceMsg(idx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
+ va_TraceMsg(idx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
+ va_TraceMsg(idx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag);
+ va_TraceMsg(idx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag);
+ va_TraceMsg(idx, "\tentropy_coding_mode_flag = %d\n", p->pic_fields.bits.entropy_coding_mode_flag);
+ va_TraceMsg(idx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
+ va_TraceMsg(idx, "\tweighted_bipred_idc = %d\n", p->pic_fields.bits.weighted_bipred_idc);
+ va_TraceMsg(idx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
+ va_TraceMsg(idx, "\ttransform_8x8_mode_flag = %d\n", p->pic_fields.bits.transform_8x8_mode_flag);
+ va_TraceMsg(idx, "\tdeblocking_filter_control_present_flag = %d\n", p->pic_fields.bits.deblocking_filter_control_present_flag);
+ va_TraceMsg(idx, "\tredundant_pic_cnt_present_flag = %d\n", p->pic_fields.bits.redundant_pic_cnt_present_flag);
+ va_TraceMsg(idx, "\tpic_order_present_flag = %d\n", p->pic_fields.bits.pic_order_present_flag);
+ va_TraceMsg(idx, "\tpic_scaling_matrix_present_flag = %d\n", p->pic_fields.bits.pic_scaling_matrix_present_flag);
+
va_TraceMsg(idx, NULL);
trace_context[idx].trace_codedbuf = p->coded_buf;
-
+
return;
}
-
static void va_TraceVAEncSliceParameterBuffer(
VADisplay dpy,
VAContextID context,
@@ -1230,6 +1299,99 @@ static void va_TraceVAEncSliceParameterBuffer(
return;
}
+static void va_TraceVAEncSliceParameterBufferH264(
+ VADisplay dpy,
+ VAContextID context,
+ VABufferID buffer,
+ VABufferType type,
+ unsigned int size,
+ unsigned int num_elements,
+ void *data)
+{
+ VAEncSliceParameterBufferH264* p = (VAEncSliceParameterBufferH264*)data;
+ DPY2INDEX(dpy);
+ int i;
+
+ va_TraceMsg(idx, "VAEncSliceParameterBufferH264\n");
+ va_TraceMsg(idx, "\tmacroblock_address = %d\n", p->macroblock_address);
+ va_TraceMsg(idx, "\tnum_macroblocks = %d\n", p->num_macroblocks);
+ va_TraceMsg(idx, "\tmacroblock_info = %08x\n", p->macroblock_info);
+ va_TraceMsg(idx, "\tslice_type = %d\n", p->slice_type);
+ va_TraceMsg(idx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
+ va_TraceMsg(idx, "\tidr_pic_id = %d\n", p->idr_pic_id);
+ va_TraceMsg(idx, "\tpic_order_cnt_lsb = %d\n", p->pic_order_cnt_lsb);
+ va_TraceMsg(idx, "\tdelta_pic_order_cnt_bottom = %d\n", p->delta_pic_order_cnt_bottom);
+ va_TraceMsg(idx, "\tdelta_pic_order_cnt[0] = %d\n", p->delta_pic_order_cnt[0]);
+ va_TraceMsg(idx, "\tdelta_pic_order_cnt[1] = %d\n", p->delta_pic_order_cnt[1]);
+ va_TraceMsg(idx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
+ va_TraceMsg(idx, "\tnum_ref_idx_active_override_flag = %d\n", p->num_ref_idx_active_override_flag);
+ va_TraceMsg(idx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
+ va_TraceMsg(idx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
+
+ if (p->slice_type == 0 || p->slice_type == 1) {
+ va_TraceMsg(idx, "\tRefPicList0 =");
+ for (i = 0; i < p->num_ref_idx_l0_active_minus1 + 1; i++) {
+ va_TraceMsg(idx, "%d-%d-0x%08x-%d\n", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx);
+ }
+ if (p->slice_type == 1) {
+ va_TraceMsg(idx, "\tRefPicList1 =");
+ for (i = 0; i < p->num_ref_idx_l1_active_minus1 + 1; i++)
+ {
+ va_TraceMsg(idx, "%d-%d-0x%08x-%d\n", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx);
+ }
+ }
+ }
+
+ va_TraceMsg(idx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
+ va_TraceMsg(idx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
+ va_TraceMsg(idx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
+ if (p->luma_weight_l0_flag) {
+ for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) {
+ va_TraceMsg(idx, "\t%d ", p->luma_weight_l0[i]);
+ va_TraceMsg(idx, "\t%d ", p->luma_offset_l0[i]);
+ }
+ }
+
+ va_TraceMsg(idx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
+ if (p->chroma_weight_l0_flag) {
+ for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) {
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l0[i][0]);
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l0[i][0]);
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l0[i][1]);
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l0[i][1]);
+ }
+ }
+
+ va_TraceMsg(idx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
+ if (p->luma_weight_l1_flag) {
+ for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) {
+ va_TraceMsg(idx, "\t\t%d ", p->luma_weight_l1[i]);
+ va_TraceMsg(idx, "\t\t%d ", p->luma_offset_l1[i]);
+ }
+ }
+
+ va_TraceMsg(idx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
+ if (p->chroma_weight_l1_flag) {
+ for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) {
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l1[i][0]);
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l1[i][0]);
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_weight_l1[i][1]);
+ va_TraceMsg(idx, "\t\t%d ", p->chroma_offset_l1[i][1]);
+ }
+ va_TraceMsg(idx, "\n");
+ }
+ va_TraceMsg(idx, NULL);
+
+ va_TraceMsg(idx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
+ va_TraceMsg(idx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
+ va_TraceMsg(idx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
+ va_TraceMsg(idx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
+ va_TraceMsg(idx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
+ va_TraceMsg(idx, NULL);
+
+ return;
+}
+
static void va_TraceVAEncMiscParameterBuffer(
VADisplay dpy,
VAContextID context,
@@ -1280,6 +1442,15 @@ static void va_TraceVAEncMiscParameterBuffer(
va_TraceMsg(idx, "\tair_auto = %d\n", p->air_auto);
break;
}
+ case VAEncMiscParameterTypeHRD:
+ {
+ VAEncMiscParameterHRD *p = (VAEncMiscParameterHRD *)tmp->data;
+
+ va_TraceMsg(idx, "VAEncMiscParameterHRD\n");
+ va_TraceMsg(idx, "\tinitial_buffer_fullness = %d\n", p->initial_buffer_fullness);
+ va_TraceMsg(idx, "\tbuffer_size = %d\n", p->buffer_size);
+ break;
+ }
default:
va_TraceMsg(idx, "invalid VAEncMiscParameterBuffer type = %d\n", tmp->type);
break;
@@ -1492,10 +1663,6 @@ static void va_TraceMPEG2Buf(
break;
case VAEncSliceParameterBufferType:
break;
- case VAEncH264VUIBufferType:
- break;
- case VAEncH264SEIBufferType:
- break;
default:
break;
}
@@ -1768,10 +1935,6 @@ static void va_TraceMPEG4Buf(
case VAEncSliceParameterBufferType:
va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
break;
- case VAEncH264VUIBufferType:
- break;
- case VAEncH264SEIBufferType:
- break;
default:
break;
}
@@ -1832,13 +1995,7 @@ static void va_TraceH264Buf(
va_TraceVAEncPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
break;
case VAEncSliceParameterBufferType:
- va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
- break;
- case VAEncH264VUIBufferType:
- va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
- break;
- case VAEncH264SEIBufferType:
- va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+ va_TraceVAEncSliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
break;
case VAEncMiscParameterBufferType:
va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);