Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

media: visl: Add HEVC short and long term RPS sets

Log the recently added v4l2 controls to set HEVC short and long term RPS
sets with 2 new ftrace entries.

Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Detlev Casanova and committed by
Hans Verkuil
4cb9cd80 fa057051

+69
+7
drivers/media/test-drivers/visl/visl-dec.c
··· 547 547 trace_v4l2_hevc_dpb_entry(&run->hevc.dpram->dpb[i]); 548 548 549 549 trace_v4l2_hevc_pred_weight_table(&run->hevc.spram->pred_weight_table); 550 + trace_v4l2_ctrl_hevc_ext_sps_lt_rps(run->hevc.rps_lt); 551 + trace_v4l2_ctrl_hevc_ext_sps_st_rps(run->hevc.rps_st); 552 + 550 553 break; 551 554 case VISL_CODEC_AV1: 552 555 trace_v4l2_ctrl_av1_sequence(run->av1.seq); ··· 614 611 run.hevc.spram = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_SLICE_PARAMS); 615 612 run.hevc.sm = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_SCALING_MATRIX); 616 613 run.hevc.dpram = visl_find_control_data(ctx, V4L2_CID_STATELESS_HEVC_DECODE_PARAMS); 614 + run.hevc.rps_lt = visl_find_control_data(ctx, 615 + V4L2_CID_STATELESS_HEVC_EXT_SPS_LT_RPS); 616 + run.hevc.rps_st = visl_find_control_data(ctx, 617 + V4L2_CID_STATELESS_HEVC_EXT_SPS_ST_RPS); 617 618 break; 618 619 case VISL_CODEC_AV1: 619 620 run.av1.seq = visl_find_control_data(ctx, V4L2_CID_STATELESS_AV1_SEQUENCE);
+3
drivers/media/test-drivers/visl/visl-dec.h
··· 7 7 #ifndef _VISL_DEC_H_ 8 8 #define _VISL_DEC_H_ 9 9 10 + #include "linux/v4l2-controls.h" 10 11 #include "visl.h" 11 12 12 13 struct visl_fwht_run { ··· 44 43 const struct v4l2_ctrl_hevc_slice_params *spram; 45 44 const struct v4l2_ctrl_hevc_scaling_matrix *sm; 46 45 const struct v4l2_ctrl_hevc_decode_params *dpram; 46 + const struct v4l2_ctrl_hevc_ext_sps_lt_rps *rps_lt; 47 + const struct v4l2_ctrl_hevc_ext_sps_st_rps *rps_st; 47 48 }; 48 49 49 50 struct visl_av1_run {
+59
drivers/media/test-drivers/visl/visl-trace-hevc.h
··· 1 1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 + #include "linux/v4l2-controls.h" 2 3 #if !defined(_VISL_TRACE_HEVC_H_) || defined(TRACE_HEADER_MULTI_READ) 3 4 #define _VISL_TRACE_HEVC_H_ 4 5 ··· 344 343 )) 345 344 ); 346 345 346 + DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, 347 + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), 348 + TP_ARGS(lt), 349 + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_lt_rps, lt)), 350 + TP_fast_assign(__entry->lt = *lt), 351 + TP_printk("\nflags %s\n" 352 + "lt_ref_pic_poc_lsb_sps %x\n", 353 + __print_flags(__entry->lt.flags, "|", 354 + {V4L2_HEVC_EXT_SPS_LT_RPS_FLAG_USED_LT, "USED_LT"} 355 + ), 356 + __entry->lt.lt_ref_pic_poc_lsb_sps 357 + ) 358 + ) 359 + 360 + DECLARE_EVENT_CLASS(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, 361 + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), 362 + TP_ARGS(st), 363 + TP_STRUCT__entry(__field_struct(struct v4l2_ctrl_hevc_ext_sps_st_rps, st)), 364 + TP_fast_assign(__entry->st = *st), 365 + TP_printk("\nflags %s\n" 366 + "delta_idx_minus1: %u\n" 367 + "delta_rps_sign: %u\n" 368 + "abs_delta_rps_minus1: %u\n" 369 + "num_negative_pics: %u\n" 370 + "num_positive_pics: %u\n" 371 + "used_by_curr_pic: %08x\n" 372 + "use_delta_flag: %08x\n" 373 + "delta_poc_s0_minus1: %s\n" 374 + "delta_poc_s1_minus1: %s\n", 375 + __print_flags(__entry->st.flags, "|", 376 + {V4L2_HEVC_EXT_SPS_ST_RPS_FLAG_INTER_REF_PIC_SET_PRED, "INTER_REF_PIC_SET_PRED"} 377 + ), 378 + __entry->st.delta_idx_minus1, 379 + __entry->st.delta_rps_sign, 380 + __entry->st.abs_delta_rps_minus1, 381 + __entry->st.num_negative_pics, 382 + __entry->st.num_positive_pics, 383 + __entry->st.used_by_curr_pic, 384 + __entry->st.use_delta_flag, 385 + __print_array(__entry->st.delta_poc_s0_minus1, 386 + ARRAY_SIZE(__entry->st.delta_poc_s0_minus1), 387 + sizeof(__entry->st.delta_poc_s0_minus1[0])), 388 + __print_array(__entry->st.delta_poc_s1_minus1, 389 + ARRAY_SIZE(__entry->st.delta_poc_s1_minus1), 390 + sizeof(__entry->st.delta_poc_s1_minus1[0])) 391 + ) 392 + ) 393 + 347 394 348 395 DECLARE_EVENT_CLASS(v4l2_hevc_dpb_entry_tmpl, 349 396 TP_PROTO(const struct v4l2_hevc_dpb_entry *e), ··· 438 389 DEFINE_EVENT(v4l2_ctrl_hevc_decode_params_tmpl, v4l2_ctrl_hevc_decode_params, 439 390 TP_PROTO(const struct v4l2_ctrl_hevc_decode_params *d), 440 391 TP_ARGS(d) 392 + ); 393 + 394 + DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_lt_rps_tmpl, v4l2_ctrl_hevc_ext_sps_lt_rps, 395 + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_lt_rps *lt), 396 + TP_ARGS(lt) 397 + ); 398 + 399 + DEFINE_EVENT(v4l2_ctrl_hevc_ext_sps_st_rps_tmpl, v4l2_ctrl_hevc_ext_sps_st_rps, 400 + TP_PROTO(const struct v4l2_ctrl_hevc_ext_sps_st_rps *st), 401 + TP_ARGS(st) 441 402 ); 442 403 443 404 DEFINE_EVENT(v4l2_hevc_dpb_entry_tmpl, v4l2_hevc_dpb_entry,