1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #if !defined(_VISL_TRACE_H264_H_) || defined(TRACE_HEADER_MULTI_READ) |
3 | #define _VISL_TRACE_H264_H_ |
4 | |
5 | #include <linux/tracepoint.h> |
6 | #include "visl.h" |
7 | |
8 | #undef TRACE_SYSTEM |
9 | #define TRACE_SYSTEM visl_h264_controls |
10 | |
11 | DECLARE_EVENT_CLASS(v4l2_ctrl_h264_sps_tmpl, |
12 | TP_PROTO(const struct v4l2_ctrl_h264_sps *s), |
13 | TP_ARGS(s), |
14 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_sps, s)), |
15 | TP_fast_assign(__entry->s = *s), |
16 | TP_printk("\nprofile_idc %u\n" |
17 | "constraint_set_flags %s\n" |
18 | "level_idc %u\n" |
19 | "seq_parameter_set_id %u\n" |
20 | "chroma_format_idc %u\n" |
21 | "bit_depth_luma_minus8 %u\n" |
22 | "bit_depth_chroma_minus8 %u\n" |
23 | "log2_max_frame_num_minus4 %u\n" |
24 | "pic_order_cnt_type %u\n" |
25 | "log2_max_pic_order_cnt_lsb_minus4 %u\n" |
26 | "max_num_ref_frames %u\n" |
27 | "num_ref_frames_in_pic_order_cnt_cycle %u\n" |
28 | "offset_for_ref_frame %s\n" |
29 | "offset_for_non_ref_pic %d\n" |
30 | "offset_for_top_to_bottom_field %d\n" |
31 | "pic_width_in_mbs_minus1 %u\n" |
32 | "pic_height_in_map_units_minus1 %u\n" |
33 | "flags %s" , |
34 | __entry->s.profile_idc, |
35 | __print_flags(__entry->s.constraint_set_flags, "|" , |
36 | {V4L2_H264_SPS_CONSTRAINT_SET0_FLAG, "CONSTRAINT_SET0_FLAG" }, |
37 | {V4L2_H264_SPS_CONSTRAINT_SET1_FLAG, "CONSTRAINT_SET1_FLAG" }, |
38 | {V4L2_H264_SPS_CONSTRAINT_SET2_FLAG, "CONSTRAINT_SET2_FLAG" }, |
39 | {V4L2_H264_SPS_CONSTRAINT_SET3_FLAG, "CONSTRAINT_SET3_FLAG" }, |
40 | {V4L2_H264_SPS_CONSTRAINT_SET4_FLAG, "CONSTRAINT_SET4_FLAG" }, |
41 | {V4L2_H264_SPS_CONSTRAINT_SET5_FLAG, "CONSTRAINT_SET5_FLAG" }), |
42 | __entry->s.level_idc, |
43 | __entry->s.seq_parameter_set_id, |
44 | __entry->s.chroma_format_idc, |
45 | __entry->s.bit_depth_luma_minus8, |
46 | __entry->s.bit_depth_chroma_minus8, |
47 | __entry->s.log2_max_frame_num_minus4, |
48 | __entry->s.pic_order_cnt_type, |
49 | __entry->s.log2_max_pic_order_cnt_lsb_minus4, |
50 | __entry->s.max_num_ref_frames, |
51 | __entry->s.num_ref_frames_in_pic_order_cnt_cycle, |
52 | __print_array(__entry->s.offset_for_ref_frame, |
53 | ARRAY_SIZE(__entry->s.offset_for_ref_frame), |
54 | sizeof(__entry->s.offset_for_ref_frame[0])), |
55 | __entry->s.offset_for_non_ref_pic, |
56 | __entry->s.offset_for_top_to_bottom_field, |
57 | __entry->s.pic_width_in_mbs_minus1, |
58 | __entry->s.pic_height_in_map_units_minus1, |
59 | __print_flags(__entry->s.flags, "|" , |
60 | {V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE, "SEPARATE_COLOUR_PLANE" }, |
61 | {V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS, "QPPRIME_Y_ZERO_TRANSFORM_BYPASS" }, |
62 | {V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO, "DELTA_PIC_ORDER_ALWAYS_ZERO" }, |
63 | {V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED, "GAPS_IN_FRAME_NUM_VALUE_ALLOWED" }, |
64 | {V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY, "FRAME_MBS_ONLY" }, |
65 | {V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD, "MB_ADAPTIVE_FRAME_FIELD" }, |
66 | {V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE, "DIRECT_8X8_INFERENCE" } |
67 | )) |
68 | ); |
69 | |
70 | DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pps_tmpl, |
71 | TP_PROTO(const struct v4l2_ctrl_h264_pps *p), |
72 | TP_ARGS(p), |
73 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pps, p)), |
74 | TP_fast_assign(__entry->p = *p), |
75 | TP_printk("\npic_parameter_set_id %u\n" |
76 | "seq_parameter_set_id %u\n" |
77 | "num_slice_groups_minus1 %u\n" |
78 | "num_ref_idx_l0_default_active_minus1 %u\n" |
79 | "num_ref_idx_l1_default_active_minus1 %u\n" |
80 | "weighted_bipred_idc %u\n" |
81 | "pic_init_qp_minus26 %d\n" |
82 | "pic_init_qs_minus26 %d\n" |
83 | "chroma_qp_index_offset %d\n" |
84 | "second_chroma_qp_index_offset %d\n" |
85 | "flags %s" , |
86 | __entry->p.pic_parameter_set_id, |
87 | __entry->p.seq_parameter_set_id, |
88 | __entry->p.num_slice_groups_minus1, |
89 | __entry->p.num_ref_idx_l0_default_active_minus1, |
90 | __entry->p.num_ref_idx_l1_default_active_minus1, |
91 | __entry->p.weighted_bipred_idc, |
92 | __entry->p.pic_init_qp_minus26, |
93 | __entry->p.pic_init_qs_minus26, |
94 | __entry->p.chroma_qp_index_offset, |
95 | __entry->p.second_chroma_qp_index_offset, |
96 | __print_flags(__entry->p.flags, "|" , |
97 | {V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE, "ENTROPY_CODING_MODE" }, |
98 | {V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT, "BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT" }, |
99 | {V4L2_H264_PPS_FLAG_WEIGHTED_PRED, "WEIGHTED_PRED" }, |
100 | {V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT, "DEBLOCKING_FILTER_CONTROL_PRESENT" }, |
101 | {V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED, "CONSTRAINED_INTRA_PRED" }, |
102 | {V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT, "REDUNDANT_PIC_CNT_PRESENT" }, |
103 | {V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE, "TRANSFORM_8X8_MODE" }, |
104 | {V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT, "SCALING_MATRIX_PRESENT" } |
105 | )) |
106 | ); |
107 | |
108 | DECLARE_EVENT_CLASS(v4l2_ctrl_h264_scaling_matrix_tmpl, |
109 | TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), |
110 | TP_ARGS(s), |
111 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_scaling_matrix, s)), |
112 | TP_fast_assign(__entry->s = *s), |
113 | TP_printk("\nscaling_list_4x4 {%s}\nscaling_list_8x8 {%s}" , |
114 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
115 | __entry->s.scaling_list_4x4, |
116 | sizeof(__entry->s.scaling_list_4x4), |
117 | false), |
118 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
119 | __entry->s.scaling_list_8x8, |
120 | sizeof(__entry->s.scaling_list_8x8), |
121 | false) |
122 | ) |
123 | ); |
124 | |
125 | DECLARE_EVENT_CLASS(v4l2_ctrl_h264_pred_weights_tmpl, |
126 | TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), |
127 | TP_ARGS(p), |
128 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_pred_weights, p)), |
129 | TP_fast_assign(__entry->p = *p), |
130 | TP_printk("\nluma_log2_weight_denom %u\n" |
131 | "chroma_log2_weight_denom %u\n" |
132 | "weight_factor[0].luma_weight %s\n" |
133 | "weight_factor[0].luma_offset %s\n" |
134 | "weight_factor[0].chroma_weight {%s}\n" |
135 | "weight_factor[0].chroma_offset {%s}\n" |
136 | "weight_factor[1].luma_weight %s\n" |
137 | "weight_factor[1].luma_offset %s\n" |
138 | "weight_factor[1].chroma_weight {%s}\n" |
139 | "weight_factor[1].chroma_offset {%s}\n" , |
140 | __entry->p.luma_log2_weight_denom, |
141 | __entry->p.chroma_log2_weight_denom, |
142 | __print_array(__entry->p.weight_factors[0].luma_weight, |
143 | ARRAY_SIZE(__entry->p.weight_factors[0].luma_weight), |
144 | sizeof(__entry->p.weight_factors[0].luma_weight[0])), |
145 | __print_array(__entry->p.weight_factors[0].luma_offset, |
146 | ARRAY_SIZE(__entry->p.weight_factors[0].luma_offset), |
147 | sizeof(__entry->p.weight_factors[0].luma_offset[0])), |
148 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
149 | __entry->p.weight_factors[0].chroma_weight, |
150 | sizeof(__entry->p.weight_factors[0].chroma_weight), |
151 | false), |
152 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
153 | __entry->p.weight_factors[0].chroma_offset, |
154 | sizeof(__entry->p.weight_factors[0].chroma_offset), |
155 | false), |
156 | __print_array(__entry->p.weight_factors[1].luma_weight, |
157 | ARRAY_SIZE(__entry->p.weight_factors[1].luma_weight), |
158 | sizeof(__entry->p.weight_factors[1].luma_weight[0])), |
159 | __print_array(__entry->p.weight_factors[1].luma_offset, |
160 | ARRAY_SIZE(__entry->p.weight_factors[1].luma_offset), |
161 | sizeof(__entry->p.weight_factors[1].luma_offset[0])), |
162 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
163 | __entry->p.weight_factors[1].chroma_weight, |
164 | sizeof(__entry->p.weight_factors[1].chroma_weight), |
165 | false), |
166 | __print_hex_dump("" , DUMP_PREFIX_NONE, 32, 1, |
167 | __entry->p.weight_factors[1].chroma_offset, |
168 | sizeof(__entry->p.weight_factors[1].chroma_offset), |
169 | false) |
170 | ) |
171 | ); |
172 | |
173 | DECLARE_EVENT_CLASS(v4l2_ctrl_h264_slice_params_tmpl, |
174 | TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), |
175 | TP_ARGS(s), |
176 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_slice_params, s)), |
177 | TP_fast_assign(__entry->s = *s), |
178 | TP_printk("\nheader_bit_size %u\n" |
179 | "first_mb_in_slice %u\n" |
180 | "slice_type %s\n" |
181 | "colour_plane_id %u\n" |
182 | "redundant_pic_cnt %u\n" |
183 | "cabac_init_idc %u\n" |
184 | "slice_qp_delta %d\n" |
185 | "slice_qs_delta %d\n" |
186 | "disable_deblocking_filter_idc %u\n" |
187 | "slice_alpha_c0_offset_div2 %u\n" |
188 | "slice_beta_offset_div2 %u\n" |
189 | "num_ref_idx_l0_active_minus1 %u\n" |
190 | "num_ref_idx_l1_active_minus1 %u\n" |
191 | "flags %s" , |
192 | __entry->s.header_bit_size, |
193 | __entry->s.first_mb_in_slice, |
194 | __print_symbolic(__entry->s.slice_type, |
195 | {V4L2_H264_SLICE_TYPE_P, "P" }, |
196 | {V4L2_H264_SLICE_TYPE_B, "B" }, |
197 | {V4L2_H264_SLICE_TYPE_I, "I" }, |
198 | {V4L2_H264_SLICE_TYPE_SP, "SP" }, |
199 | {V4L2_H264_SLICE_TYPE_SI, "SI" }), |
200 | __entry->s.colour_plane_id, |
201 | __entry->s.redundant_pic_cnt, |
202 | __entry->s.cabac_init_idc, |
203 | __entry->s.slice_qp_delta, |
204 | __entry->s.slice_qs_delta, |
205 | __entry->s.disable_deblocking_filter_idc, |
206 | __entry->s.slice_alpha_c0_offset_div2, |
207 | __entry->s.slice_beta_offset_div2, |
208 | __entry->s.num_ref_idx_l0_active_minus1, |
209 | __entry->s.num_ref_idx_l1_active_minus1, |
210 | __print_flags(__entry->s.flags, "|" , |
211 | {V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED, "DIRECT_SPATIAL_MV_PRED" }, |
212 | {V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH, "SP_FOR_SWITCH" }) |
213 | ) |
214 | ); |
215 | |
216 | DECLARE_EVENT_CLASS(v4l2_h264_reference_tmpl, |
217 | TP_PROTO(const struct v4l2_h264_reference *r, int i), |
218 | TP_ARGS(r, i), |
219 | TP_STRUCT__entry(__field_struct(struct v4l2_h264_reference, r) |
220 | __field(int, i)), |
221 | TP_fast_assign(__entry->r = *r; __entry->i = i;), |
222 | TP_printk("[%d]: fields %s index %u" , |
223 | __entry->i, |
224 | __print_flags(__entry->r.fields, "|" , |
225 | {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF" }, |
226 | {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF" }, |
227 | {V4L2_H264_FRAME_REF, "FRAME_REF" }), |
228 | __entry->r.index |
229 | ) |
230 | ); |
231 | |
232 | DECLARE_EVENT_CLASS(v4l2_ctrl_h264_decode_params_tmpl, |
233 | TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), |
234 | TP_ARGS(d), |
235 | TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_h264_decode_params, d)), |
236 | TP_fast_assign(__entry->d = *d), |
237 | TP_printk("\nnal_ref_idc %u\n" |
238 | "frame_num %u\n" |
239 | "top_field_order_cnt %d\n" |
240 | "bottom_field_order_cnt %d\n" |
241 | "idr_pic_id %u\n" |
242 | "pic_order_cnt_lsb %u\n" |
243 | "delta_pic_order_cnt_bottom %d\n" |
244 | "delta_pic_order_cnt0 %d\n" |
245 | "delta_pic_order_cnt1 %d\n" |
246 | "dec_ref_pic_marking_bit_size %u\n" |
247 | "pic_order_cnt_bit_size %u\n" |
248 | "slice_group_change_cycle %u\n" |
249 | "flags %s\n" , |
250 | __entry->d.nal_ref_idc, |
251 | __entry->d.frame_num, |
252 | __entry->d.top_field_order_cnt, |
253 | __entry->d.bottom_field_order_cnt, |
254 | __entry->d.idr_pic_id, |
255 | __entry->d.pic_order_cnt_lsb, |
256 | __entry->d.delta_pic_order_cnt_bottom, |
257 | __entry->d.delta_pic_order_cnt0, |
258 | __entry->d.delta_pic_order_cnt1, |
259 | __entry->d.dec_ref_pic_marking_bit_size, |
260 | __entry->d.pic_order_cnt_bit_size, |
261 | __entry->d.slice_group_change_cycle, |
262 | __print_flags(__entry->d.flags, "|" , |
263 | {V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC, "IDR_PIC" }, |
264 | {V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC, "FIELD_PIC" }, |
265 | {V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD, "BOTTOM_FIELD" }, |
266 | {V4L2_H264_DECODE_PARAM_FLAG_PFRAME, "PFRAME" }, |
267 | {V4L2_H264_DECODE_PARAM_FLAG_BFRAME, "BFRAME" }) |
268 | ) |
269 | ); |
270 | |
271 | DECLARE_EVENT_CLASS(v4l2_h264_dpb_entry_tmpl, |
272 | TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), |
273 | TP_ARGS(e, i), |
274 | TP_STRUCT__entry(__field_struct(struct v4l2_h264_dpb_entry, e) |
275 | __field(int, i)), |
276 | TP_fast_assign(__entry->e = *e; __entry->i = i;), |
277 | TP_printk("[%d]: reference_ts %llu, pic_num %u frame_num %u fields %s " |
278 | "top_field_order_cnt %d bottom_field_order_cnt %d flags %s" , |
279 | __entry->i, |
280 | __entry->e.reference_ts, |
281 | __entry->e.pic_num, |
282 | __entry->e.frame_num, |
283 | __print_flags(__entry->e.fields, "|" , |
284 | {V4L2_H264_TOP_FIELD_REF, "TOP_FIELD_REF" }, |
285 | {V4L2_H264_BOTTOM_FIELD_REF, "BOTTOM_FIELD_REF" }, |
286 | {V4L2_H264_FRAME_REF, "FRAME_REF" }), |
287 | __entry->e.top_field_order_cnt, |
288 | __entry->e.bottom_field_order_cnt, |
289 | __print_flags(__entry->e.flags, "|" , |
290 | {V4L2_H264_DPB_ENTRY_FLAG_VALID, "VALID" }, |
291 | {V4L2_H264_DPB_ENTRY_FLAG_ACTIVE, "ACTIVE" }, |
292 | {V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM, "LONG_TERM" }, |
293 | {V4L2_H264_DPB_ENTRY_FLAG_FIELD, "FIELD" }) |
294 | |
295 | ) |
296 | ); |
297 | |
298 | DEFINE_EVENT(v4l2_ctrl_h264_sps_tmpl, v4l2_ctrl_h264_sps, |
299 | TP_PROTO(const struct v4l2_ctrl_h264_sps *s), |
300 | TP_ARGS(s) |
301 | ); |
302 | |
303 | DEFINE_EVENT(v4l2_ctrl_h264_pps_tmpl, v4l2_ctrl_h264_pps, |
304 | TP_PROTO(const struct v4l2_ctrl_h264_pps *p), |
305 | TP_ARGS(p) |
306 | ); |
307 | |
308 | DEFINE_EVENT(v4l2_ctrl_h264_scaling_matrix_tmpl, v4l2_ctrl_h264_scaling_matrix, |
309 | TP_PROTO(const struct v4l2_ctrl_h264_scaling_matrix *s), |
310 | TP_ARGS(s) |
311 | ); |
312 | |
313 | DEFINE_EVENT(v4l2_ctrl_h264_pred_weights_tmpl, v4l2_ctrl_h264_pred_weights, |
314 | TP_PROTO(const struct v4l2_ctrl_h264_pred_weights *p), |
315 | TP_ARGS(p) |
316 | ); |
317 | |
318 | DEFINE_EVENT(v4l2_ctrl_h264_slice_params_tmpl, v4l2_ctrl_h264_slice_params, |
319 | TP_PROTO(const struct v4l2_ctrl_h264_slice_params *s), |
320 | TP_ARGS(s) |
321 | ); |
322 | |
323 | DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list0, |
324 | TP_PROTO(const struct v4l2_h264_reference *r, int i), |
325 | TP_ARGS(r, i) |
326 | ); |
327 | |
328 | DEFINE_EVENT(v4l2_h264_reference_tmpl, v4l2_h264_ref_pic_list1, |
329 | TP_PROTO(const struct v4l2_h264_reference *r, int i), |
330 | TP_ARGS(r, i) |
331 | ); |
332 | |
333 | DEFINE_EVENT(v4l2_ctrl_h264_decode_params_tmpl, v4l2_ctrl_h264_decode_params, |
334 | TP_PROTO(const struct v4l2_ctrl_h264_decode_params *d), |
335 | TP_ARGS(d) |
336 | ); |
337 | |
338 | DEFINE_EVENT(v4l2_h264_dpb_entry_tmpl, v4l2_h264_dpb_entry, |
339 | TP_PROTO(const struct v4l2_h264_dpb_entry *e, int i), |
340 | TP_ARGS(e, i) |
341 | ); |
342 | |
343 | #endif |
344 | |
345 | #undef TRACE_INCLUDE_PATH |
346 | #undef TRACE_INCLUDE_FILE |
347 | #define TRACE_INCLUDE_PATH ../../drivers/media/test-drivers/visl |
348 | #define TRACE_INCLUDE_FILE visl-trace-h264 |
349 | #include <trace/define_trace.h> |
350 | |